Pull to refresh
42
0
Филатов Дмитрий @dfilatov

Пользователь

Send message
Потому что на каждый клик у вас создается новый экземпляр задекорированной функции. Надо сделать так:

var onload = $.debounce(function(_e) {
 console.log('loaded');
}, 1000);

var test = function() {
 $.ajax({
  'url': 'http://myhost/blablabla',
  'success': onload
 })
};


* This source code was highlighted with Source Code Highlighter.
debounce и bind могут применяться не только для обработчиков событий, поэтому делать debounceBind было бы странным. debounceBind может быть надстройкой над debounce.

А что у вас именно не получилось с $.ajax.success?
Ага, надо мне почаще смотреть их roadmap'ы :)
Если хочешь что-то изменить — начинай с себя, а не иди на поводу у большинства.
Зря только логотип IE везде вставлен. Приучаете к плохому :)
добавил $.useScript.registerLoaded

Не то чтобы прохождение по тэгу сильно дорого, но как-то оно смущает. Тем более ничего конкретно оно не дает. Потому что на продакшене основной функционал пакуется в один файл, и ссылаться по имени начального js там будет сложно. Лучше уж registerLoaded.
Не нравится $('script[src]') — проход по всему дереву. Да и не дает этот метод гарантии — допустим, в подключаемом в head скрипте 1.js стоит вызов $.useScript('2.js') напрямую и после этого в head идет подключение 2.js. В итоге, все равно 2 запроса за одним и тем же уйдет.
Надо еще покопать и подумать в этом направлении.
Вообщем, пока только переименовал $.loadScript в $.useScript и сделал поддержку массива урлов. Остальное под вопросом.
Этот вариант недоделан, о чем можно прочитать в комментах того поста.
Спасибо, буду думать. Мне кажется только пункт 3 немного лишний. Лучше в своем приложении сделать какой-нибудь NAMESPACE.useModule(), где уже будет прописано откуда и что брать. А $.loadScript все-таки ф-ия немного более низкого уровня.
Вернее, на продакшене не должно скачиваться одно и тоже, а должно браться из браузерного кэша.
Я понимаю как это работает, я не понимаю зачем это так сделано. Это должно быть как минимум опциональным, иначе каждый раз одно и тоже будет скачиваться. И чаще на продакшене все-таки должно одно и тоже отдаваться.
Одна из причин перехода на новые версии, как вы сами заметили, — это увеличение производительности в новых версиях. Другая — то, что там обычно появляется новых функционал (обычно востребованный). А можно увидеть где-нибудь тесты, где Sizzle оказывается быстрее в 3 раза чем он же, обернутый jQuery? Да и вообще мне кажется, что если в вашем приложении критична скорость селекторов, то надо подумать об оптимизации использования селекторов, а не увеличения их производительности.
Не понял, если js проекта по размеру больше, чем размер jQuery, то его (jQuery) нужно рефакторить и выбрасывать все лишнее? Мне кажется это более чем странно. Как мне думается, чем больше проект, тем наоборот, все больше и больше бонусов начинаешь получать от использования jQuery.

И с выходом новой версии jQuery опять рефакторить и выбрасывать лишнее из него?
Обычно, jQuery все-таки нужен не для того чтобы загрузить 100Кб по требованию. Здесь предлагается решение, когда jQuery уже используется на проекте, но есть необходимость в ленивой загрузке части функционала.
Что странного в том, чтобы подгружать, допустим, 100 Кб какого-нибудь функционала только тогда, когда он действительно понадобится на странице (учитывая, что он может и не понадобится)?
Я думал, что эксперт это тот, кто может дать грамотный ответ
Объекты — замыкания для бедных?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity