2009-02-25 6 views
10

La question à peu près déjà tout dit.A quel point mettre javascript hors de l'en-tête est-il mauvais?

Je commence à ajouter quelques fonctionnalités à mon weekend project. C'est une petite application pour moi et quelques amis, car nous sommes des étudiants d'échange c'est un peu utile pour nous.

Mais la chose est la suivante, je le fais en php et tout structurer avec des inclusions afin que je puisse obtenir le code séparé. Certains de ces morceaux de code dépendent des snipets javascripts, alors à quel point est-il mauvais de mettre un javascript au milieu du corps? Ou devrais-je juste faire des doubles afin que le javascript reste dans l'en-tête?

Répondre

2

Il est parfaitement bien de placer Javascript dans le corps. Il y a même une chose comme "inline" Javascript. N'en faites pas trop. Si vous pouvez empaqueter vos scripts dans un fichier séparé (ce qui n'est pas toujours possible), cela rendra votre code plus facile à maintenir.

1

Il y a de bonnes raisons de le faire. BON) Si le script n'est pas critique pour la construction de votre page DOM, il est bon de le faire aussi tard que possible, comme le suggère Jim Puls, généralement tout en bas de la page dans le nœud BODY racine. C'est bien car cela permet au rendu XHTML de se faire immédiatement, créant un effet psychologique que la page "charge plus vite". En réalité, il charge à la même vitesse sauf que le navigateur ne passe pas de cycles CPU à télécharger, interpréter et exécuter le JS pendant que l'utilisateur regarde une fenêtre de navigateur blanche.

BAD) Les balises de script sont généralement téléchargées et interprétées dans l'ordre dans lequel elles sont incluses. Cela signifie que vous devez gérer soigneusement l'ordre dans lequel ils sont inclus. De plus, comme ils se chargent en série (un à la fois), vous payez un coût élevé pour chaque fichier supplémentaire que vous référencez car le navigateur doit établir la connexion, vérifier le cache, télécharger, etc. Les astuces telles que "DEFFER" ne sont pas standard. Pour cette raison, je recommande vivement d'empaqueter votre javascript dans un seul fichier lorsque vous passez du développement à la production afin que les utilisateurs n'ont pas à faire plusieurs connexions en série. Assurez-vous également que la compression gzip est activée.

GOOD) Il existe un moyen de charger des scripts par chargement avec AJAX - vous appelez votre serveur demandant le JS, et déclenchez un événement lorsque le fichier est chargé. Vous pouvez ensuite appeler eval (ou une variante plus sûre) qui apporte ses symboles dans la portée. Cela permet des téléchargements parallèles de script.

GOOD & BAD) Dans IE, vous devez éviter de manipuler l'arborescence DOM avant que le DOM ne soit complètement chargé. Recherchez l'événement 'dom: loaded' pour cela.

Questions connexes