Maison >interface Web >js tutoriel >Quelques conseils pour écrire du code JSLite efficace imitant JQuery_jquery
Il n'est pas rare que des articles discutent des performances de jQuery et javascript. Cependant, je prévois de vous apprendre à améliorer votre code JSLite et JavaScript en me basant sur quelques astuces et suggestions rapides que d'autres ont rassemblées pour jQuery. Un bon code apportera des améliorations de vitesse. Un rendu rapide et une réactivité signifient une meilleure expérience utilisateur.
Tout d'abord, gardez à l'esprit que JSLite est du javascript. Cela signifie que nous devons adopter les mêmes conventions de codage, guides de style et meilleures pratiques.
Tout d'abord, si vous êtes un débutant en javascript et n'avez jamais utilisé jQuery, je vous suggère de lire d'abord l'introduction à la syntaxe du document officiel. Il s'agit d'un tutoriel javascript de haute qualité, ce qui signifie que vous utilisez jQuery depuis. un moment.
Lorsque vous êtes prêt à utiliser JSLite, je vous recommande fortement de suivre ces directives :
Variables du cache
La traversée du DOM coûte cher, alors essayez de mettre en cache les éléments réutilisés.
JSLite est identique à JavaScript. De manière générale, il est préférable de s'assurer que vos variables sont dans la portée de la fonction.
Ajoutez le préfixe $ avant les variables pour identifier facilement les objets JSLite.
Consolidez plusieurs instructions var en une seule instruction. Je recommande de mettre les variables non attribuées à la fin.
Veuillez utiliser sur
Dans la nouvelle version de JSLite, le plus court on("click") est utilisé pour remplacer des fonctions comme click(). Dans les versions précédentes, on() était bind() . on() est la méthode préférée pour attacher des gestionnaires d'événements. Cependant, par souci de cohérence, vous pouvez simplement utiliser la méthode on() ensemble.
$first.hover(function(){
$first.css('border','1px solid red');
})
// Suggestion
$first.on('clic',function(){
$first.css('border','1px solid red');
$first.css('color','bleu');
})
$first.on('hover',function(){
$first.css('border','1px solid red');
})
En général, il est préférable de combiner les fonctions autant que possible.
Il est très simple d'implémenter des opérations chaînées de méthodes en JSLite. Profitez-en ci-dessous.
Maintenir la lisibilité du code
En plus de rationaliser le code et d'utiliser le chaînage, le code peut devenir difficile à lire. L’ajout de pincements et de sauts de ligne peut faire des merveilles.
L'évaluation de court-circuit est une expression qui s'évalue de gauche à droite, à l'aide des opérateurs && (ET logique) ou || (OU logique).
Une façon de rationaliser votre code consiste à tirer parti des raccourcis de codage.
Si vous prévoyez d'effectuer de nombreuses opérations sur les éléments DOM (définir successivement plusieurs attributs ou styles CSS), il est recommandé de séparer d'abord les éléments puis de les ajouter.
$element = $containerLi.first();
//... De nombreuses opérations complexes
// mieux
var
$conteneur = $("#conteneur"),
$containerLi = $container.find("li"),
$élément = nul;
$element = $containerLi.first().detach();
//... De nombreuses opérations complexes
$container.append($element);
Vous n'avez peut-être pas d'expérience dans l'utilisation des méthodes dans JSLite, assurez-vous de consulter la documentation, il existe peut-être un moyen meilleur ou plus rapide de l'utiliser.
如前面所提到的,DOM遍歷是一項昂貴的操作。典型做法是快取父元素並在選擇子元素時重複使用這些快取元素。
將通用選擇符放到後代選擇符中,效能非常糟糕。
通用選擇符有時是隱式的,不容易發現。
例如,Id選擇符應該是唯一的,所以沒有必要添加額外的選擇符。
在此強調,ID 選擇符應該是唯一的,不需要增加額外的選擇符,更不需要多個後代ID選擇符。
新版本通常更好:更輕量級,更有效率,方法更多,更全面的覆蓋jQuery方法。顯然,你需要考慮你要支援的程式碼的兼容性。例如,專案是否跑在良好的支援 HTML5/CSS3
必要時組合JSLite和javascript原生程式碼
如上所述,JSLite就是javascript,這意味著用JSLite能做的事情,同樣可以用原生程式碼來做。原生程式碼的可讀性和可維護性可能不如JSLite,而且程式碼更長。但也意味著更有效率(通常更接近底層程式碼可讀性越差,效能越高,例如:彙編,當然需要更強大的人才可以)。牢記沒有任何框架能比原生程式碼更小,更輕,更有效率(註:測試連結已失效,可上網搜尋測試程式碼)。
最後忠告
最後,我記錄這篇文章的目的是提高JSLite的性能和其他一些很好的建議。如果你想深入的研究對這個主題你會發現很多樂趣。記住,JSLite並非不可或缺,僅是一種選擇。思考為什麼要使用它。 DOM操作? ajax?模版? css動畫?還是選擇器? jQuery重度開發者?