169 похожих чатов

У меня данные подгружаются по intersectionObserver'у .Как можно кешировать запросы,

чтобы если уже по одному блоку запрос был выполнен, он не выполнялся повторно?

19 ответов

55 просмотров

Ну сохранить где-то ответ

Эльдар- Автор вопроса
Sergey Grishchenko
Ну сохранить где-то ответ

Вопрос неверно задал, скорее всего. Мне надо, чтобы при скроле, если уже по блоку был запрос, он не повторялся повторно

самый топорный вариант хранить промис в мапе аля const chachedPromises = { [‘некий уникальный ключ для блока’]: promise } но твой вопрос слишком общий - тут могут быть нюансы под твой конкретный кейс

Эльдар
Вопрос неверно задал, скорее всего. Мне надо, чтоб...

Ты имеешь в виду пока запрос не завершился?

Эльдар- Автор вопроса
Ilya Agarkov
самый топорный вариант хранить промис в мапе аля ...

вариант так себе, их может быть больше сотни

Эльдар- Автор вопроса
Sergey Grishchenko
А кто отправляет твой запрос?

при скролле, если блок виден, запрос отправляется

Эльдар
вариант так себе, их может быть больше сотни

можешь хранить не промис а флаг что для этого блока уже данные были запрошены

Эльдар- Автор вопроса
Ilya Agarkov
и что?

А нет апихи у обсервера какого-нибудь, чтобы обсервер увидел элемент выполнил действие и больше не подписывался на изменения?

Эльдар
А нет апихи у обсервера какого-нибудь, чтобы обсер...

должны быть способ отписки от обсервера

Эльдар- Автор вопроса
Ilya Agarkov
должны быть способ отписки от обсервера

способ отписки есть, но если ты проскролишь дальше и вернешься к этому блоку, он снова подпишется

Эльдар
способ отписки есть, но если ты проскролишь дальше...

каким образом он снова подпишется?)) если ты ему не скажешь то не подпишется

Эльдар- Автор вопроса
Ilya Agarkov
каким образом он снова подпишется?)) если ты ему н...

если блок снова окажется в поле видимости

Эльдар
способ отписки есть, но если ты проскролишь дальше...

Понятно, ладно У тебя может быть только один запрос в одну сторону в конкретный момент времени. Просто бул флаг заведи вида isFetchingMore

Эльдар- Автор вопроса
Sergey Grishchenko
Что такое блок?

условно часть страницы

Эльдар
если блок снова окажется в поле видимости

каким образом ты узнаешь что он в области видимости? наверное через тот же обзервер? Вот и отпишишь от него

Sergey Grishchenko
Понятно, ладно У тебя может быть только один запр...

Если он тру, то не отправляй новый запрос, когда блок появляется во вьюпорте

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта