2009-06-16 13 views
0

J'ai actuellement une seule page de script jQuery que j'inclus dans mon ScriptManager sur ma MasterPage (j'utilise ASP.NET). Tous mes scripts personnalisés pour toutes mes pages vont dans cette page. Je sais que certaines personnes aiment le découper en plusieurs pages, mais je préfère les avoir toutes en un seul endroit. Quoi qu'il en soit, j'en ai un $(document).ready(function(){ //do stuff// }); sur cette page. Tous mes autres fonctions que je nom, puis placer dans la fonction document.ready, à savoir:jQuery: Réglage des fonctions par page

$(document).ready(function(){ 
    Function1(); //necessary for page1.aspx, page2.aspx but not 3 or 4 
    Function2(); //etc., necessary for some but not other pages 
}); 

function Function1() { 
    // whatever, etc // 
} 

Mes centres d'interrogation autour de l'efficacité de cette. Beaucoup de ces fonctions n'ont qu'une application sur certaines pages, mais pas sur toutes. Serait-il préférable d'inclure un codage spécifique à la page, c.-à-d., Déterminer sur quelle page nous sommes, et si nous sommes sur la bonne page, allez-y et exécutez la fonction, ou cela n'a-t-il même pas d'importance? J'avais l'impression que cela n'avait pas d'importance, mais je voudrais être sûr.

Merci

Répondre

1

Vous pouvez envisager de tout mettre dans un fichier .js externe. Ensuite, le navigateur doit seulement télécharger le code une fois.

Si les fonctions provoquent des erreurs sur les pages où elles ne sont pas nécessaires, vous ne devez les inclure que sur les pages où elles sont nécessaires.

Sinon, cela dépend de la durée d'exécution des fonctions. Si ce n'est pas vraiment long, je dirais ne vous inquiétez pas à ce sujet. Cela ne vaut pas la fragilité que vous présenterez en ajoutant un tas d'instructions if.

+0

je l'ai tout dans un fichier .js externe (comme mentionné dans la question) qui est chargé dans le scriptmanager sur la masterpage ... mais aucune erreur n'est introduite par des fonctions inutiles, et les scripts ne sont pas si gros (le fichier est sous 200 lignes en ce moment) – Jason

+0

Ensuite, je ne vois aucune raison impérieuse de changer ce que vous avez. En y réfléchissant, j'ai beaucoup de fonctions qui peuvent ou ne peuvent pas faire quelque chose en fonction du contenu de la page, et cela depuis des années. –

1

Je ne peux pas dire si cela est une réponse définitive, mais où peut-être dans un projet que je tente d'afficher et de montrer aussi peu que possible le codage qui ne sont pas pertinentes à cette page.

Donc, dans le cas de JQuery, je n'afficherais que le code javascript requis pour cette page en effectuant une vérification côté serveur.

Mais je suppose que cela dépend vraiment de la taille du code que vous utilisez, si c'est un petit script d'une ligne dans jquery alors je ne pense pas que vous allez vraiment perdre, mais si vous avez beaucoup de logique là-dedans, alors je vous recommande de le décomposer par page qui le requiert.

+0

serait un moyen pratique d'aller sur ce quelque chose comme chemin var = window.location.pathname; puis en analysant la variable de chemin au début de chaque fonction? ou serais-je mieux rompre dans plusieurs fichiers .js? aussi, si je faisais ce dernier, comment pourrais-je ajouter ceux-ci sur une base par page w/mon gestionnaire de script dans la page maître? – Jason

+0

Je ne suis pas vraiment sûr de savoir comment fonctionne votre gestionnaire de scripts ou ASP, je suis principalement un développeur PHP.En fonction de la configuration et du nombre de fichiers, j'utiliserais une instruction if ou un commutateur pour créer les pages, puis afficher le code html pour inclure le script. Pas trop de mal à le faire côté client non plus! Il y a beaucoup de manières d'inclure vraiment vos dossiers je ne peux pas dire vraiment qui est le meilleur pour vous. À 200 lignes (jusqu'à présent) je dirais que l'inclure dans chaque page n'est pas trop un problème. (mais alors cela dépend vraiment de l'utilisation du site - s'il obtient beaucoup d'utilisateurs peut-être que vous voulez enregistrer la bande passante) –

1

Selon le nombre de fonctions spécifiques à la page, cela peut être très important.

Si vous avez une petite quantité de données supplémentaires, vous ne verrez pas de baisse notable des performances. Cependant, au fur et à mesure que votre base de code grandit, cela pourrait devenir un désastre pour maintenir ce code.

De plus, vous poussiez bits supplémentaires à travers le fil dans chaque demande de page, l'augmentation du trafic qui peut ajouter jusqu'à coûts supplémentaires sur la bande passante.

1

Oui. Cela compte. La vraie question est de savoir à quel point ces fonctions sont compliquées. Si vous pensez que le code pour vérifier si les fonctions sont nécessaires prendrait plus de temps que d'exécuter le code, alors ce n'est pas nécessaire.

Telle est donc la question que vous devez vous poser (ou test): Faut-il plus de temps pour tester si je besoin de la fonction, ou tout simplement pour les exécuter?

Questions connexes