AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

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

Как сделать следующую конструкцию:

js.include('http://htmlweb.ru/add_script.js');

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

Будем использовать XHTTPRequest. Этот объект работает в двух режимах: асинхронном (когда указывается функция обратного вызова) и синхронном (запрос происходит непосредственно во время вызова xhttp.open()). Нам нужен второй: при этом код загрузится прямо на месте js.include. А дальше достаточно выполнить eval(xhttp.responseText):

// объявляем
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');


.

© Copyright 2008-2016 by KDG