Можно ли связать JQuery AJAX-запросов как одноуровневую очередь (без вложенности) - PullRequest
0 голосов
/ 03 марта 2011

Первоначально вопрос возник из идеи динамической загрузки группы файлов javascript с помощью $ .getScript.

Я разрабатываю только js-интерфейс для нескольких проектов, в которых используются некоторые библиотеки,и было бы неплохо (или, по крайней мере, кажется) иметь один файл js, который включает в себя общие библиотеки, а также другой - который обрабатывает определенные библиотеки.

Некоторые из внешних интерфейсов, о которых я говорюabout фактически будет работать как виджеты для других веб-сайтов, и пока мы не настроим процесс сжатия файла js в один, это также необходимо для размещения виджета в качестве единого включения js, а затем для включения всех зависимостей в очередь.

Что-то вроде: $ .getScript .getScript .getScript

Итак, вопрос состоит из двух частей: 1. Будет ли это иметь смысл?2. Если да, то как?

Спасибо!

1 Ответ

2 голосов
/ 03 марта 2011

Вы имеете в виду следующее: вы хотите написать что-то вроде

$.getScript("js/file1.js").getScript("js/file2.js").getScript("js/file3.js");

и в результате загрузить один файл с сервера, который содержит все указанные (вроде file1.js + file2.js + file3.js), не так ли?Если я получу это, то это кажется невозможным, по крайней мере, таким образом.Это действительно имеет некоторый смысл, даже хороший, потому что браузер будет отправлять один запрос вместо трех (таким образом, производительность будет лучше).Чтобы реализовать то, что вы хотите, вам нужна хорошая поддержка со стороны сервера.Например, вы можете написать

$.getScript("js/libraries?files=file1,file2,file3");

, и серверная сторона должна иметь возможность проанализировать этот запрос, добавить все файлы, упомянутые в запросе, и отправить вас.Но, как вы видите, что-то должно существовать на стороне сервера, чтобы помочь вам;

Если вы разрабатываете какую-то инфраструктуру или такую, вы можете сделать предопределенную сборку, например, ваша библиотека будет содержать

js/
    file1.js
    file2.js
    file3.js
common.js

где common.js - это просто file1.js + file2.js + file3.js, и вы можете его автоматизировать, чтобы изменить код и запустить специальную сборку, которая создаст common.js.Таким образом, вы можете положиться на

$.getScript("common.js");

, и это даже лучше, чем запрос

$.getScript("js/libraries?files=file1,file2,file3");

, потому что в случае последнего должно быть выполнено некоторое время выполнения (производительность немного падает).когда мы разрабатываем наши проекты, мы используем jawr на стороне сервера для создания предопределенных пакетов библиотек / файлов javascript

...