2009-12-30 4 views
1

Tout en déclarant Javascript dans un document HTML. Nous avons 3 façons de le fairejavascript basic question

    section script
  1. va dans la section script balise head
  2. va dans la balise body
  3. javascript
  4. est des références à partir d'un fichier externe

Lequel de ces est plus rapide et efficace en ce qui concerne la performance est considérée?

Merci

Répondre

2

1 et 2 concernent l'emplacement de l'étiquette. 3 pourrait appliquer à la fois 1 et 2.

En outre, vous pouvez avoir le javascript dans le gestionnaire d'attributs d'événement, comme ceci:

<button onclick="alert(1)">pressme</button> 

pour couronner le tout, vous pouvez aussi avoir le javascript comme URL, dans pour liens par exemple:

<a href="javascript: alert(1)">click me</a> 

juste coller à vos exemples: tout d'abord, il est généralement une bonne idée d'utiliser des fichiers de script externes que vous chargez avec un composant src dans les balises. Cela permet au navigateur de mettre en cache le script, ce qui permet à la page de se charger plus rapidement après le chargement initial de la page. Ceci est particulièrement vrai si vous utilisez des choses comme jQuery et les charger à partir d'un réseau public de livraison Conent (comme le google ajax api voir: http://code.google.com/apis/ajaxlibs/documentation/)

Quant à l'emplacement (tête ou corps): dans les temps anciens, les gens utilisés Pour dire, mettez vos scripts dans la tête pour vous assurer qu'ils sont chargés une fois le corps chargé et que tous les éléments interactifs peuvent être utilisés par l'utilisateur. Mais le problème avec cela est que le chargement de ces scripts bloquera le chargement de la partie visuelle de la page, le corps. Fondamentalement, les utilisateurs regardent une page blanche, se demandant si leur page est si longue à rendre. Donc de nos jours, la sagesse populaire est de placer tous les scripts aussi loin que possible dans le corps, et assurez-vous d'écrire votre javascript de façon à pouvoir gérer les scripts partiellement chargés. Le guide YSlow est une excellente ressource pour apprendre sur ces choses. voir: http://developer.yahoo.com/yslow/help/

0

Si vous êtes super préoccupé par la performance, je dirais que le chargement des js dans le code html serait plus rapide. Les éléments dans le chargement avant le reste de la page, donc du point de vue de l'utilisateur, ils peuvent penser que le téléchargement prend plus de temps avec js puisque la page ne commencera à afficher qu'après le chargement de la page, mais la quantité de données devrait être la même . Le fichier js externe est probablement le plus lent car il nécessitera une requête http séparée.

+0

"Le fichier js externe est probablement le plus lent car il nécessitera une requête http séparée" - c'est vrai dans une seule page. Si c'est une situation qui implique le chargement de certaines pages, il peut être très rapide de mettre le JS dans le fichier HTML. –

1

Je dirais que cela dépend des circonstances.

  • Un fichier externe est une bonne idée si vous avez un grand script qui est utilisé sur un site et que vous voulez tirer parti des mécanismes de mise en cache côté client.

  • Si un script n'est utilisé que sur une page, il peut être logique de le conserver dans la tête/le corps. Il est clair que plus tôt le script apparaîtra dans la page, plus tôt le JavaScript sera exécuté, mais vous serez peut-être contraint d'attendre que le DOM soit disponible pour le script, auquel cas cela ne fera aucune différence s'il est dans la tête ou le corps.

  • Vous pouvez placer le script immédiatement après tout code HTML définissant le DOM auquel il doit accéder. Ce serait probablement le moyen le plus rapide d'exécuter un script dans la page, mais ne le faites pas pour un fichier chargé en externe (et mis en cache) s'il est grand ou utilisé dans de nombreux endroits.

0

La réponse courte est ... bien ... cela dépend.

Si par

plus rapide et efficace en ce qui concerne le rendement est considéré

vous voulez dire « charges plus rapide », puis script en ligne dans la tête va obtenir votre code dans le navigateur plus rapide le premier le temps est chargé. Un fichier externe peut être mis en cache, donc si vous incluez le même script sur plusieurs pages, une fois que vous avez surmonté le temps nécessaire pour le charger la première fois, vous l'avez en mémoire.

2

Cela dépend vraiment du type de JavaScript que vous écrivez. Si vous écrivez du code qui doit être exécuté dans le corps (par exemple: document.write()), vous devrez l'écrire dans la balise body. Si ce n'est pas le cas et si vous écrivez des fonctions javascript, alors vous devriez aller dans la balise principale ou dans un fichier différent. Vous utiliseriez un fichier différent si vous utilisiez les mêmes fonctions sur plusieurs pages.

w.r.t, cela dépend encore de ce que vous faites. Si vous avez juste une page qui utilise javascript, il serait plus rapide de le garder dans l'en-tête. De cette façon, vous réduisez un aller-retour pour obtenir le fichier javascript.

Si vous avez plusieurs pages qui utilisent les mêmes fonctions, il sera plus rapide si les fonctions sont dans un fichier différent car elles seront téléchargées une fois et utilisées plusieurs fois.