2009-11-20 1 views
4

Есть ли такой плагин jQuery?Плагин JQuery для ленивой загрузки/ленивой оценки?

Конкретно: Я хочу использовать элегантный и простой способ отложить выполнение какого-либо кода до тех пор, пока он не понадобится (какое-то событие происходит). И когда это событие происходит, отложенный код должен выполняться только один раз. Некоторая ленивая инициализация.

Например, примените некоторую анимацию к элементу, когда документ не готов, но когда пользователь наводится на этот элемент.

Я знаю, как это сделать вручную, но мне это не нравится, потому что я должен подумать о проверке и установке «инициализированного» флага перед выполнением анонимной функции. Мне было интересно, если это уже сделано (без ошибок, с некоторыми вкусными функциями).

ответ

4

http://plugins.jquery.com/project/LazyReady

Ленивый Ready Плагин предназначен для задержки инициализации кода до тех пор, пока указанный DOM элемент (ы) в взаимодействовали с (зависанием/фокусировкой).

+0

Интересная находка. Но один вопрос приходит на ум. (Извините) Сколько времени вы потратили на поиск этого вместо кодирования;) – jitter

+6

Примерно 5 минут. Это не вопрос спасенного времени. Это любопытное проявление разработчика и желание общаться. Это то, что для stackoverflow, не так ли? :) –

2

Ответ на более конкретный вопрос:

Вам не нужно никакого плагин не так ли? Просто сделайте что-нибудь в этом направлении.

Это вызовет функцию postponedHeavyFunction() только после того, как пользователь нажмет на элемент с идентификатором lazyelement и только один раз.

function postponedHeavyFunction() { 
    // unbind. This guarantees that postponedHeavyFunction will only 
    // execute once for the event we bound it to #lazyelement 
    $("#lazyelement").unbind('click', postponedHeavyFunction); 
    ... 
    //do whatever 
    .... 
} 

//when event is triggered the function you specify gets run 
$("#lazyelement").bind('click', postponedHeavyFunction); 

Проверить http://jsbin.com/agora/ на мертвые глупые демонстрации.


Что именно вы хотите. Что должно быть ленивым загруженным/ленивым? Более конкретно.

Ленивая оценка (как известно из других языков) AFAIK не поддерживается в Javascript per se (как языковая концепция). За исключением, может быть, для операторов, таких как &, |, &&, ||.

Если вы просто хотите, чтобы некоторые JavaScript для ленивых загрузки других скриптов смотреть на это: Painless JavaScript lazy loading with LazyLoad

+0

Отредактированный мой вопрос. Сейчас это более точно. –

+0

+1 для безболезненного Javascript Lazy Загрузка статьи. –

+0

К сожалению, он не указывает, что он работает в IE8, всего 6 и 7. –