2014-07-08 4 views
2

각기 다른 스크립트를 사용하여 여러 페이지에서 여러 개의 javascript가 실행되는 웹 사이트를 만들고 있습니다.다른 페이지에 대해 다른 jQuery/JS 호출

나는 모든 기능을 가진 하나의 js 파일을 갖고 싶지만 그 스크립트를 사용하지 않는 페이지의 모든 자바 스크립트 파일을 선언하고 싶지는 않습니다.

나는 (각 페이지에 사용되는 스크립트에 따라) 다른 클래스를 추가하고 나는이 방법을 사용하고 있습니다 :

if($('body').is('.wowJS')){  
     .... 
    } 

이이 작업을 수행하는 가장 효율적인 방법입니다? 다른 방법이 있습니까?

+1

브라우저 캐싱을 이용하려면 별도의 파일이 필요합니다. 그것들을 구성하는 것은 웹 사이트에서 기능이 어떻게 구성되어 있는지에 달려 있습니다. * 파일 전송 요청 횟수를 줄이기 위해 번들 *을 살펴보십시오 (실제로 그렇게하고 싶다고 생각합니다). –

+1

특정 페이지에서 사용되지 않는 코드가 많은 큰 js 파일을 만드는 것은 효율적이지 않습니다. 브라우저는 여전히 사용자가 아니더라도 코드를 파싱해야합니다. 자바 스크립트 내용을 관련 파일로 분리하고 필요한 경우 페이지에 참조를 추가하십시오. – Esko

+2

스크립트를 하나의 파일로 묶고 브라우저의 캐싱 동작을 사용하거나 require js를 사용하십시오. – Jai

답변

2

이 코드는 특정 페이지에 대해 javascript를 실행합니다.

var route = { 
    _routes: {}, // The routes will be stored here 

    add: function (url, action) { 
    this._routes[url] = action; 
    }, 
    run: function() { 
     jQuery.each(this._routes, function (pattern) { 
     if (location.href.match(pattern)) { 
      // "this" points to the function to be executed 
      this(); 
     } 
    }); 
    } 
} 

// Will execute only on this page: 
route.add('002.html',function(){ 
alert("Hello"); 
}); 

// You can even use regex-es: 
route.add('.*.html',function(){ 
alert("Hellodaa"); 
}); 

route.run(); 
관련 문제