JavaScript: Реализация include scripts (подгрузки скриптов) на javascript

Автор Неизвестен  // 13.05.2011
Как сделать следующую конструкцию:
js.include('http://htmlweb.ru/add_script.js');

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

Будем использовать XHTTPRequest. Этот объект работает в двух режимах: асинхронном (когда указывается функция обратного вызова) и синхронном (запрос происходит непосредственно во время вызова xhttp.open()). Нам нужен второй: при этом код загрузится прямо на месте js.include. А дальше достаточно выполнить eval(xhttp.responseText):
<?php
// объявляем
js = {};
js.loadedModules = {};
 
js.include = function(path) {
if(js.loadedModules[path]) return;
 
var transport = js.getXHTTPTransport();
transport.open('GET', path , false);
transport.send(null);
 
var code = transport.responseText;
eval(code);
}
// используем
js.include('http://htmlweb.ru/add_script.js');
?>


Share this:


Комментарии (0) Добавить
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.