Pull to refresh
109
0
Олег @Olegas

Fullstack-разработчик

Send message
Да, именно это по сути и делается в предложенном плагине. Предлагается более удобный способ использования. Не нужно заботиться о предварительной инициализации и т.п.
Нет, естественно не перестанет. Все будет работать верно. Почитайте код плагина.
Обычного сохранения в переменную вариант лучше тем, что позволяет не запоминать в какую там переменную что было сохранено. Проще адаптировать код.
Какое «первоначальное» обращение хочется закоментировать? То, которое //Before — это пример кода до использования cache.plugin

// After — как адаптируется код для применения плагина
Уже многократно отвечал в комментариях.
Передаваемых rootId несколько разных. Приходится для каждого кэшировать работу $(...) что и было сделано с помощью замыканий. После этого проблемы со скоростью исчезли.

Проблему можно было решить изменением верстки и оптимизацией самих выборок по селекторам.

Хотелось найти именно решение без изменения окружающей архитектуры.

Рабочий пример показать к сожалению не могу, проект пока в разработке и закрыт. Аналог — скандинавский аукцион gagen.ru. Узкое место — функция обновления лотов настранице — пересчет времени, вывод лидеров, новых цен.
Кармы нет чтобы проапдейтить пост…
в общем будет примерно так:

clear: function(selector) {
selector == null? selectorCache = []: selectorCache[selector] = null;
}
Именно в моем случае было недостаточно сохранить как локальную переменную. В посте по ссылке можно почитать почему. Там это решалось с помощью замыканий.

По крайней мере в FF3, IE6+, Chrome оба метода (замыкания и $.cache.get) дали на глаз заметное преимущество.
Вот здесь — habrahabr.ru/blogs/javascript/63119/ описана изначальная задача в процессе обсуждения которой появился этот плагин.
Почему прироста может не быть? Из-за работы с внутренней реализации [] браузером? Т.е. поиск по селектору может сработать быстрее поиска элемента по ключу?
CanGenerateEvents — исключительно для примера. «Класс, умеющий генерить события». Про существительное согласен на 100%.

current($args) — безусловно ошибка, там не должно быть current, исправил.

EventArgument — случайно упустил, добавил.

По исключениям — спасибо, да, это действительно правильнее.
Спасибо, поапдейтил.
$.cache.get('...');
$.cache.clear();
Ну если есть, покажите пожалуйста, я не смог найти.
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Ну если есть, покажите пожалуйста, я не смог найти.
Прирост скорости имеется если какой-то конкретный селектор неоднократно вызывается. При единичном использовании ясно что не будет прироста.
Получается что да.
Уммм… красиво, да.
=)
Я тогда плохо вообще представляю как такой плагин будет работать
ИМХО спорно… А если не надо все селекторы намертво кэшировать? Гибкости нет.
Проверка — чтобы не навешивать кривых хэндлеров, чтобы еще на этапе попытки навесить хэндлер увидеть ошибку в один символ в имени метода, чтобы просто более строго система была прострена, приемники строго типизированы чтобы были.

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity