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

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

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

19 ответов

15 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет. Я верно понимаю, что в определении класса Монад m — зафиксирован (к тому же поскольку это моноид в категории эндофункторов). Т.е. используя байнд я не могу перемещать...
Arseny
5
Карта сайта