Viktor
этот цикл событий - легковесная штука в плане задач
сам интерпретатор JS на тяжелых задачах тупит, поэтому даже шифрование типа bcrypt делегируется C/C++
Viktor
Viktor
то есть JS-интерпретатор - это скоросшиватель
цикл событий - секретарь
всю тяжелую работу делает "аутсорс"
Viktor
Благодаря этому разделению и неблокирующей архитектуре цикла событий, мы имеем хорошую производительность
Maksim
Viktor
да, точно, спасибо за замечание
Nick
Народ, привет всем! Как реализовать отлов события ajaxSuccess без использования jQuery?
Nick
Но на какое событие?
Nick
не обнаружил
Nick
Чет мне подсказывает, что в JS такого нету
Nick
Я в принципе про event. Его не существует: https://developer.mozilla.org/en-US/docs/Web/Events
Maksim
нет такого события за пределами jquery
Nick
Ну вот
Nick
Я о чем
Maksim
Nick
Maksim
что значит не на мои события?
Viktor
глубоко технически я не знаю) к сожалению передо мной не стояло такой задачи, да и я скорее всего забыл бы, если бы прочитал когда-то
Viktor
поэтому я абстрагировался от конкретики
Viktor
Nick
что значит не на мои события?
Я имею в виду, что у меня нет элемента, на котором будет что-то происходить.
Нужно ловить все AJAX'ы в document. Как если бы было document.ajaxSuccess(...)
Nick
Если другой скрипт что-то куда-то запрашивает - я должен об этом знать
Maksim
Maksim
Viktor
аааа
Viktor
думаю, никак
Nick
Ну Жквери как-то это ж делает
Viktor
не уверен
Maksim
Nick
$itg(document).ajaxSuccess(function(a, b, c) {
if (c.url.indexOf('/cart/add.js') !== -1 || c.url.indexOf('/cart/change.js') !== -1 || c.url === '/cart.js' || c.url === '/cart/update.js') {
itg_fsb_check_cart()
}
})
Viktor
jQuery - просто обертка над XMLHttpRequest
Viktor
хм
Maksim
Nick
О как
Nick
Я понял, спасибо
Nick
Выходит он ловит только те события, которые сам и создает
Nick
Тогда все логично
Maksim
конечно, он их сам создает и сам ловит, просто в другом месте
Viktor
Viktor
ну в принципе тут "трава подстелена" для того, чтобы удобно вешать дополнительные слушатели на предмет сетевото ответа
важно понимать, что тут вызов зарегистрирован глобально
Viktor
это скорее особый случай
Viktor
если сама процедура запроса запрятана где-то в коде (не привязана ни к чему, неглобальна), то к ней никак не получишь
Viktor
коротко говоря вопрос в следующем
Maksim
jq просто эталон говеного кода
Viktor
"есть ли у тебя доступ к контексту вызова, или нет"
Viktor
слушай
Nick
конечно, он их сам создает и сам ловит, просто в другом месте
Я к чему это спрашиваю вообще. Есть магазины и у них есть темки. В зависимости от темы в корзину товар добавляется либо аяксом, либо запросом по клику на кнопку (кнопкой может быть все ( input, span, button)). И вот мне нужно ловить события добавления в корзину
Nick
Повесить хэндлеры на все элементы - это изврат
Viktor
а что происходит после основного запроса (из чужого скрипта)
Maksim
Viktor
он должен оставлять "следы"
Maksim
не надо такой софт использовать )
Viktor
то есть может тебе отследить не сам запрос, а факт его выполнения (например, html обновился как-то)
Viktor
я помню как сам шастал по форумам, и мне говорили "тебе надо все переписывать"
Nick
Nick
Nick
В этом и беда, я не знаю когда и откуда что вызовется, и поэтому должен ловить все
Nikolay
Nikolay
Если неохота либу цеплять, декорируй XMLHttpRequest
Nick
Огонь, это мысль. Спасибо
Nikolay
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function (value) {
this.addEventListener('progress', () => {
console.log("Loading");
}, false);
this.realSend(value);
};
Nikolay
Это ж жс, воруй-убивай.
Viktor
MVD
как создать массив от 1 до n ?
Nikolay
А что значит от 1? О_о
Nikolay
Не пиши ничего в head и всё.
Viktor
ему нужен range походу
MVD
Спасибо
Viktor
Anonymous
Viktor
MVD
Xaxashutkin
Вот это неожиданно
Не знал о таком