Faster Page Loading

O ScriptManager έχει ένα property , το LoadScriptsBeforeUI το οποίο όταν είναι false θα έπρεπε να φορτώνει όλα τα scripts που αφορούν το Ajax Framework μετά το περιεχόμενο της σελίδας. Αλλά μπορώ να πώ ότι δεν το κάνει με επιτυχία. Κάποια scripts που αφορούν extenders , frameworks και γίνονται reigster από την Ajax Control Toolkit συνεχίζουν και φορτώνουν πριν το  περιεχόμενο της σελίδας. Μια κλασική σελίδα που χρησιμοποιηεί το Microsoft AJAX Framework θα πρέπει να δείχνει κάπως έτσι.

Τι μπορεί όμως να γίνει για να αλλάξει αυτό? Αρχικά για ποιο λόγο να αλλάξει ? Γιατί τότε η σελίδα μας θα φορτώνει ποιο γρήγορα το UI αφήνωντας στο τέλος τα scripts και θα έχουμε καλύτερο user experience  αφού δεν θα χρειάζεται να περιμένει να εκτελεστούν τα scripts και να συνεχίσει ο browser με το load της σελίδας.

Στο CodePlex και συγκεκριμένα εδώ είναι ένα project με το όνομα Dropthings. Μέσα στο project αυτό, στο φάκελο App_Code ύπάρχει ένα αρχείο που λέγεται ScriptDeferFilter.cs Το κατεβάζουμε και το βάζουμε στον φάκελο App_Code της εφαρμογής μας.

Στη συνέχεια μέσα στο Global.asax και σε κάποιο event που γίνεται raised πρίν από τη δημιουργία του Response. Γράφουμε το εξής:

Εδώ βλέπουμε ότι χρησιμοποιείται το παραπάνω filter μόνο όταν έχουμε μέθοδο GET. Επίσης μπορούμε να το κάνουμε hook σε Post ή και ανάλογα με το ContentType πχ όταν είναι text/html.

Ετσι αν τα κάνουμε όλα σωστά θα καταλήξουμε να έχουμε κάτι τέτοιο :

Για όποιον ενδιαφέρεται για το πως υλοποιείται αυτό το filter μπορεί να διαβάσει αυτό το post του Omar AL Zabir

Share/Bookmark
Published Τρίτη, 6 Μαΐου 2008 12:52 μμ by djsolid

Comments

No Comments

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Submit