Да, именно это по сути и делается в предложенном плагине. Предлагается более удобный способ использования. Не нужно заботиться о предварительной инициализации и т.п.
Передаваемых rootId несколько разных. Приходится для каждого кэшировать работу $(...) что и было сделано с помощью замыканий. После этого проблемы со скоростью исчезли.
Проблему можно было решить изменением верстки и оптимизацией самих выборок по селекторам.
Хотелось найти именно решение без изменения окружающей архитектуры.
Рабочий пример показать к сожалению не могу, проект пока в разработке и закрыт. Аналог — скандинавский аукцион gagen.ru. Узкое место — функция обновления лотов настранице — пересчет времени, вывод лидеров, новых цен.
Именно в моем случае было недостаточно сохранить как локальную переменную. В посте по ссылке можно почитать почему. Там это решалось с помощью замыканий.
По крайней мере в FF3, IE6+, Chrome оба метода (замыкания и $.cache.get) дали на глаз заметное преимущество.
Почему прироста может не быть? Из-за работы с внутренней реализации [] браузером? Т.е. поиск по селектору может сработать быстрее поиска элемента по ключу?
Ну если есть, покажите пожалуйста, я не смог найти.
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Ну если есть, покажите пожалуйста, я не смог найти.
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Проверка — чтобы не навешивать кривых хэндлеров, чтобы еще на этапе попытки навесить хэндлер увидеть ошибку в один символ в имени метода, чтобы просто более строго система была прострена, приемники строго типизированы чтобы были.
// After — как адаптируется код для применения плагина
Проблему можно было решить изменением верстки и оптимизацией самих выборок по селекторам.
Хотелось найти именно решение без изменения окружающей архитектуры.
Рабочий пример показать к сожалению не могу, проект пока в разработке и закрыт. Аналог — скандинавский аукцион gagen.ru. Узкое место — функция обновления лотов настранице — пересчет времени, вывод лидеров, новых цен.
в общем будет примерно так:
clear: function(selector) {
selector == null? selectorCache = []: selectorCache[selector] = null;
}
По крайней мере в FF3, IE6+, Chrome оба метода (замыкания и $.cache.get) дали на глаз заметное преимущество.
current($args) — безусловно ошибка, там не должно быть current, исправил.
EventArgument — случайно упустил, добавил.
По исключениям — спасибо, да, это действительно правильнее.
$.cache.get('...');
$.cache.clear();
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Я тогда плохо вообще представляю как такой плагин будет работать