Включение Javascript в веб-страницы - PullRequest
0 голосов
/ 14 мая 2009

Может ли кто-нибудь порекомендовать лучший и самый простой способ включить несколько файлов Javascript на веб-страницу (на основе PHP)?

У меня есть веб-сайт, который использует jQuery и может содержать до 10 плагинов на любой конкретной странице. Я не совсем уверен в том, как лучше всего включить все эти файлы, чтобы упростить мне жизнь разработчика и убедиться, что они лучше всего обслуживаются пользователем.

В идеале я подумал, что проще всего самому было бы создать файл обработчика PHP, который я мог бы использовать для вызова плагинов, которые мне нужны для каждой страницы, и затем заставить его выводить javascript, который использовал document.write () для «включения» каждого из них. Файл плагина JS на странице, вот так:

<script src="handler.php?jquery,plugin1,plugin2,plugin3,plugin4"></script>

, который может затем вывести Javascript с несколькими document.write () для каждого отдельного плагина.

Однако я считаю, что это может привести к проблемам с кэшированием браузера, поскольку некоторые браузеры игнорируют кэширование элементов со строками запроса.

Это нормально, или я могу упустить более простой метод?

Ответы [ 5 ]

2 голосов
/ 14 мая 2009

вас может заинтересовать Google AJAX API , т. Е .:

google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.1");
google.load("prototype", "1.6.0.3");
1 голос
/ 14 мая 2009

Джоэли,

У браузеров нет проблем с кэшированием URL с вопросительными знаками. Вероятно, лучше не включать файл js, который, в свою очередь, включает другой файл js. Если вы уже пишете сценарий, который управляет всеми файлами js, которые должны быть включены, почему бы не вывести все эти теги сценария прямо здесь?

1 голос
/ 14 мая 2009

Почему бы просто не включить каждый из файлов в отдельности со своим собственным тегом <script>? Тогда все кэшируется индивидуально и все хорошо. При первой загрузке страницы будет только много HTTP-запросов. Динамическое создание «включаемого файла» каждый раз, вероятно, не будет лучше для производительности.

Сильно ли отличается комбинация скриптов? Если вы действительно хотите сократить HTTP-запросы и всегда включаете одни и те же 10 файлов, просто объедините их все в один длинный файл.

0 голосов
/ 14 мая 2009
function loadScripts(funcs){
    //funcs being an array list of paths to the scripts.
    var temp;

    //lets get a reference to the head tag
    var h = document.getElementsByTagName('head')[0];
    for(var i=0; i < funcs.length; i++){
        temp = document.createElement('script');
        temp.setAttribute('src', funcs[i]);
        temp.setAttribute('type', 'text/javascript');
        h.appendChild(temp);
    }
}
0 голосов
/ 14 мая 2009

Если вы действительно не хотите включать файлы по отдельности, вы, вероятно, могли бы написать функцию php для генерации тегов скрипта с учетом списка имен плагинов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...