2012-06-13 3 views
0

Chacun de mes pages 10-15 a 100-200 lignes de js à l'intérieur $(document).ready()Stockage documents maintenant pour plusieurs pages dans des fichiers externes

Serait-il sage de les combiner dans un seul fichier externe? Je ne comprends pas comment cela fonctionnerait. Le navigateur ne devrait-il pas vérifier tout en même temps, même les fonctions qui ne sont pas sur la page actuelle? Le deuxième problème serait probablement les conflits de fonction.

S'il vous plaît donnez-moi quelques conseils sur la façon de gérer cela.

+0

Je ne les combinerais que si cela réduisait le code global, par exemple le code réutilisable par rapport à la copie du même code dans plusieurs fichiers. –

+0

@KevinB le code est différent pour chaque page, mais je pourrais bénéficier de le rendre cacheable. – domino

+0

vous pourriez également regarder dans des choses telles que faire tous vos gestionnaires de formulaire utilisent le même code, les widgets ui reliure paresseux tels que datepickers et champs autocomplete, etc –

Répondre

1

Vous pouvez diviser ces lignes en plusieurs fichiers si votre fichier js devient trop grand.
Notez simplement que 100-200 lignes sont très petites. Vous devriez réduire votre code si la taille est vraiment importante pour vous.

« Nous devons oublier les petits gains d'efficacité, disons environ 97% du temps: l'optimisation prématurée est la racine de tous les maux »

En ce qui concerne les conflits fonctions, l'utilisation des espaces de noms, et les fermetures et de garder votre monde objet propre que possible.

+0

Je ne suis pas préoccupé par la taille des fichiers externes. Plutôt sur l'amélioration de la vitesse de chargement de la page de chaque page (ils sont utilisés très fréquemment). Mais je ne suis pas sûr que le fait de tout mettre dans un seul fichier accélèrerait quelque chose, car il y aurait tellement de choses à portée mondiale. – domino

+0

@domino. Cela va accélérer les choses. ce fichier sera téléchargé une fois, et pour toutes les autres pages, il sera mis en cache. – gdoron

+0

Suggéreriez-vous de placer le code de chaque page dans une fonction séparée du fichier combiné, puis de faire les appels si nécessaire? – domino

1

serait-il sage? Oui. vous donnez au navigateur un gros bloc de données qu'il n'a plus à se soucier de ce qui améliore la vitesse de chargement de la page. placez tous vos événements onload dans des fonctions nommées différemment et appelez-les à partir des pages pertinentes, ou réutilisez des fonctions sur des pages différentes si elles doivent faire la même chose.

+0

J'aime l'idée de fonctions, je n'y avais pas pensé. Plus facile de le garder propre. – domino

+0

Plus vous pouvez documenter votre code plus facile pour référence future. – Tschallacka

1

Vous devez examiner différentes choses.

d'abord supprimer tous les js à cdn publique, si possible, par ex jquery En second lieu toujours rapetisser & combiner tous js à un seul fichier (même pour css aussi)

L'avantage est ici si vous avez 10 js navigateur de fichiers doit faire dix demandes et recevoir chaque fichier séparément. Sans parler du nombre de demandes par domaine dans les appareils mobiles. Par contre, si tous les fichiers sont envoyés en un seul fichier, il n'y a qu'une seule requête. Vous avez raison de dire que cela prendra beaucoup de temps à s'exécuter (ou au moins à vérifier tous les éléments en cours), mais ce temps de traitement est beaucoup plus faible que le temps de requête qui se produirait si les fichiers étaient différents.

+0

J'utilise des headjs qui chargent tout en parallèle. – domino

Questions connexes