Несмотря на то, что необходимо минимизировать количество http-запросов, иногда (или часто, в зависимости от задачи) бывает полезно загружать часть «тяжелого» функционала только тогда, когда он действительно понадобится на странице.
У jQuery есть механизм, позволяющий осуществить это —
Где:
Может кому-то пригодится. Скачать и попробовать можно с code.google.
UPDATE: согласно замечаниям в комментах,
У jQuery есть механизм, позволяющий осуществить это —
$.getS
cript
, однако, он обладает рядом недостатков:- не запоминаются уже загруженные или загружаемые в данный момент скрипты, при повторном запросе опять идет их загрузка.
- нельзя указать сразу несколько скриптов
- выключен кэш (к каждому урлу насильно приписываются параметры типа
?_=1242843920520
). Зачем это было так жестко сделано, для меня осталось загадкой. - у коллбэка нельзя задать контекст (это вообще болезнь коллбэков jQuery).
$.requireS
cript(url, callback, [context], [options])
Где:
url
— урл загружаемого скрипта (может быть массивом урлов)callback
— коллбэк-функция, вызываемая после загрузки скриптовcontext
— контекст, в котором вызывается коллбэк-функция (опционален) options
— параметры; в данный момент поддерживается только один параметр — parallel
, указывающий, нужно ли использовать параллельную загрузку для нескольких скриптов (по умолчанию — true
)Может кому-то пригодится. Скачать и попробовать можно с code.google.
UPDATE: согласно замечаниям в комментах,
$.loadS
cript
переименован в $.requireS
cript
, и теперь можно указать несколько урлов сразу.