jQuery에서는 jQuery.getScript() 메소드로 외부스크립트(js파일)를 동적으로 로드할 수 있습니다.
하지만, 스크립트를 로드할 때 타임스태프를 파라메터에 추가하여 호출하여 캐시되지 않도록 되어 있습니다.
스크립트의 내용이 변경되는 파일이라면 유용하겠지만, 고정적인 내용을 가지고 있는 파일이라면 쓸데 없는 낭비가 발생합니다.

아쉽게도 jQuery.getScript()에는 캐시설정을 변경할 수 없습니다. 내부적으로 ajax를 통해 호출하고 있으니 이를 통해 동일한 기능을 사용할 수 있고 캐시설정을 변경할 수 있습니다. 코드는 아래와 같습니다.

jQuery.ajax({
    type: 'GET',
    url : 'http://www.lifepod.co.kr/api/calendar.js',
    cache : true,
    success : callback,
    dataType : 'script'
});

jQuery.ajax()를 통해 스크립트파일을 가져오는데, 'success'항목에 콜백 함수를 지정하여 파일이 로드된 직후에 특정 코드를 실행할 수 있습니다.

이상, jQuery.getScript()에서 캐시를 사용하지 않는 스크립트파일 로드에 관한 작은 팁이었습니다. :)
아직 제작중인 XE용 Planner 모듈의 자바스크립트 처리부분을 jQuery의 플러그인 방식으로 제작하던 도중 플러그인 내부에서 스크립트파일을 호출시 발견된 문제를 해결하기 위한 방법으로 활용하고 있습니다.

 

이 글과 연관된 글
  1. [2008/10/15] 제로보드XE. CMS로서의 XE로 변화 *6 (49035)
  2. [2008/11/15] 플래너 코드를 다시 들여다보다 *11 (26277)
  3. [2008/10/08] jQuery 트리, 폴더형 위젯 플러그인 5가지 (6492)
  4. [2008/12/24] jQuery 위젯 그리드 플러그인 *4 (10904)
  5. [2008/10/07] jQuery 다중 항목 선택 위젯 *2 (4166)
  6. [2008/08/24] XE가 PHP 5.2 이상에서 동작하게 됩니다. *2 (8150)
  7. [2008/10/04] XE에 파이어폭스의 FirePHP 애드온 활용 디버깅 *1 (8995)