2011-06-24 3 views
0

J'ai beaucoup cherché sur Google pour trouver la réponse à cette question, mais je n'ai rien trouvé. En plus des fonctionnalités supplémentaires offertes par un chargeur de script comme yepnope, est-ce que ça va me donner de meilleures performances et une meilleure gestion du cache que jQuery.getScript?jQuery.getScript vs performance yepnope

Merci à l'avance,

Simon

+0

Notez que par défaut 'jQuery.getScript()' utilise 'cache: false' qui nuira aux performances du second chargement d'une page. – Richard

Répondre

3

En principe, leur fonctionnellement identique. Le plus gros gain que vous obtenez de quelque chose comme yepnope est le chargement conditionnel intégré. Tandis que, avec $ .getScript, vous devrez effectuer les vérifications booléennes requises manuellement. Il y a aussi des petites choses comme le fait que yepnope est déjà supporté par des tests, alors que si vous vouliez la même certitude dans votre code de chargement conditionnel personnalisé, vous auriez à écrire le vôtre.

En bref, yepnope est juste un gain de temps comme jQuery lui-même est un gain de temps. Il n'y a rien que vous pouvez faire dans jQuery que vous ne pouvez pas faire dans JavaScript JavaScript; cela prend juste plus de temps, d'énergie et d'effort. Si vous envisagez de charger dynamiquement des scripts, je vous recommande d'utiliser une bibliothèque pour cela, au lieu de réinventer la roue.

Fait intéressant, yepnope est réellement regroupé dans Modernizr (je ne le savais pas). Donc, si vous cherchez à commencer à entrer dans HTML5, vous pouvez inclure Modernizr et obtenir vos shivs, le sucre sensible à la fonctionnalité, et le chargement de script dynamique tout en un.

+0

J'utilise déjà Modernizr et c'est pourquoi je regardais de plus près yepnope. La principale chose que je reproche à jQuery.getScript est que lors du premier chargement, il (ou du moins il semble que ça) n'inclut pas l'en-tête comme etag parce qu'il ne les connaît pas et donc ré-exécute le script complet même si vous avez déjà le jour avant et toujours dans votre cache. Est-ce que ce serait encore le cas avec une lib comme yepnope qui n'utilise pas la requête ajax pour charger le script? –

+0

Yepnope * utilise AJAX pour charger le script, et en fait, votre serveur doit renvoyer les en-têtes expirés pour fonctionner correctement. Les Etags ne sont vraiment pas utilisés pour quoi que ce soit. Si vous utilisez déjà Modernizr, cependant, c'est une évidence. La fonctionnalité est déjà là, il est stupide de ne pas l'utiliser et d'écrire le vôtre à partir de zéro. –

+0

Merci beaucoup pour vos réponses, je n'ai plus de questions monsieur ;-) –

1

Vous pouvez également utiliser head.js si vous chargez plusieurs fichiers JS.