레거시 프로젝트에서 나는 모두의 jquery 사용자 정의 코드를 모든 페이지의 한 파일에 하나의 doc.ready로 저장합니다 (유지 관리가 쉽지만 페이지 당 불필요한 선택기가 많이 필요함). 나는 (a) 이것은 엉망인 프로그래밍이다 (b) 이것은 나쁜 성능이되어야한다는 것을 생각하기 시작했다. 그래서 나는 약간의 연구를하기 시작했다.jQuery 성능 (쿼리 낭비)
기본적으로 하나의 js 파일을 원했지만 해당 페이지에 필요한 쿼리/선택기/기능 만로드하거나 제공하려고했습니다.
나는이 옵션을 가로 질러 온 : body 태그를
mylib.article.init();
global.js
var mylib =
{
article_page :
{
init : function()
{
// Article page specific jQuery functions.
}
},
traffic_light :
{
init : function()
{
// Traffic light specific jQuery functions.
}
}
}
을 닫는 위의 페이지의 하단에
(스크립트 호출
2.
이$(document).ready(function() {
$('#sideNav LI:not(#current)').hide();
});
일부 페이지는 측면 탐색이없는에도 불구하고,이에 오류가 발생하지 않습니다 http://jonraasch.com/blog/5-performance-tuning-tricks-for-jquery
우리는 페이지로드에 측면 탐색 요소를 축소하려는 사이트의 일부에 있다고 가정 모든 브라우저는 숨김 기능이 필요할 때만 실행되도록합니다.
$(document).ready(function() {
var sideNavPages = ['catalog', 'order', 'contact'];
if (jQuery.inArray(thisPage, sideNavPages) != -1) {
$('#sideNav LI:not(#current)').hide();
}
});
위의 2 개 중 어느 것이 더 좋습니까? 세 번째로 더 좋은 옵션이 있습니까?
사람들이 생각하는 것을 잘 알고 있습니다.
Adi.