2010-08-05 4 views
1

Cette question est une question de suivi pour this question.Autre méthode pour inclure les fichiers JS

Si certains navigateurs téléchargent des fichiers JS alors que l'utilisateur a désactivé JS, est-il sensé d'inclure des fichiers JS avec JS pour éviter que l'utilisateur ne soit obligé de télécharger le JS inutilement?

Par exemple:

function inc(filename){ 
    var body = document.getElementsByTagName('body').item(0); 
    script = document.createElement('script'); 
    script.src = filename; 
    script.type = 'text/javascript'; 
    body.appendChild(script); 
} 

Je trouve le code ci-dessus here.

Y a-t-il des inconvénients à ce code? Je ne l'ai pas encore testé pour m'assurer qu'il fonctionne correctement, mais cela semble assez simple. J'essaie d'éviter que plusieurs requêtes HTTP et l'empreinte de téléchargement du code soient imposées aux utilisateurs qui ne le souhaitent pas.

De même, comment cela fonctionnerait-il si l'utilisateur activait JS après le chargement initial du site?

Est-ce que cela importe? Cela vaut-il la peine de s'inquiéter?

Répondre

7

Je vais remonter à cette question:

Est-ce que cette question même? Cela vaut-il la peine de s'inquiéter?

Non, il est :) pas le pourcentage d'utilisateurs qui avez désactivé JavaScript doit être très minoritaire (dans la majorité des cas), il est vraiment pas la peine de jouer avec le chargement de tous utilisateurs à enregistrer quelques requêtes HTTP (qui devraient être mises en cache) pour quelques-unes, rester avec <script> tags.

Aussi, regardez la accepted answer dans la question précédente, dans le test initial 3/4 navigateurs ne téléchargent pas déjà, si vraiment cela est seulement pour Chrome (et peut-être IE), les autres navigateurs déjà enregistrer les demandes ici.

Mise à jour: Je viens de tester dans IE8, il ne pas télécharger tout JavaScript inclus quand il est désactivé, je ne suis pas configuré pour tester toutes les autres versions en ce moment, mais cela est vrai dans IE8 au moins.

+0

+1. À moins que vous ayez un auditoire très spécifique à l'esprit pour ce que vous développez, le nombre de navigateurs qui ne sont pas compatibles avec JS est négligeable et ne vaut pas la peine d'être utilisé pour des performances spéciales. –

+0

Vous avez raison sur le fait que c'est exagéré si vous faites cela afin d'empêcher le téléchargement de navigateurs non compatibles JS. Mais je peux voir l'utilisation du téléchargement à la demande si vous avez une page JS d'une page avec dix onglets et chaque onglet nécessite un morceau de JS spécifique. Il ne serait pas nécessaire de charger tous les dix onglets à la fois, mais de charger à la demande (lorsque l'utilisateur clique sur l'onglet). –

+0

@Gert G: Oui, certainement, mais c'est, comme on dit, une autre histoire pour une autre fois. Au moins YUI (et probablement d'autres) exposent une infrastructure sophistiquée pour le chargement de modules JS à la demande, si c'est ce que vous voulez (ce qui est très différent de la portée de cette question). –

Questions connexes