Динамическая подгрузка JavaScript

При устранении последних неполадок на сайте, восстановил все заметки кроме одной, но важной. Сегодня я решил восстановить ее из локальной RSS-читалки, т.к контент действительно интересен для разработчиков, и применялся этой ночью мной на практике.

Сегодня читал рассылку "Новые технологии веб-программирования", и очень проникся идеей которая предложена в статье "JavaScript-по-запросу".

Идея в том, чтобы на сайтах, содержащих большое количество скриптов(например, AJAX`овских), при начальной загрузке страницы загружались не все скрипты сразу, а только скелетный, остальные же подгружались по мере необходимости.

От себя чуточку доработал метод подгрузки на основе DOM с тем чтобы слегка универсализировать функцию:

 
   function loadOurScript(source){
    var head = document.getElementsByTagName("head")[0];
    script=document.createElement('script');
    script.id='formPrinter';
    script.type='text/javascript';
    script.src=source;
    head.appendChild(script);
   }
 

Использование: для тестирования функции создаем любой элемент с обработкой события OnClick, вызывающей нашу функцию loadOurScript с именем или адресом подгружаемого скрипта в параметре.


<button onClick="loadOurScript('1.js')">load 1.js</button>

В полевых же условиях, область применения ограничивается только фантазией разработчика. Скрипт можно подгрузить в ответ на любое событие :)

Теги: ,

Статьи схожей тематики:

Предлагаю вашему вниманию...

Print или Echo?

Переменные сессии без cookies

Советы по разработке расширений для CMS Joomla! 1.5

Регулярные выражения javascript. Теория.

Комментарии(1):

rss-лента

Добавлено: 2008-02-23 19:36:22, Витёк

Не изобретай велосипед, уже давно такая техника используется в AJAX-библиотеке JsHttpRequest от Дмитрия Котерова (http://dklab.ru/lib/JsHttpRequest/).

Добавить комментарий

Ваше имя:*
Ваш email:*(не публикуется)
Ваш сайт:
Ваш комментарий:*

Переносы строк и url-адреса преобразуются автоматически, не забудьте отделить их пробелами. html и bb-коды не поддерживаются.