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

Добрый день. Может вопрос избитый, но ответа не нашел Vuejs3. У

меня есть самописная вьюшка, которая делает несколько (от 1 до десятков тысяч) запросов к api для построения графа (запрашивается информация по нодам).

Я столкнулся с тем, что функция, отвечающая за запросы и построение графа, не завершает свою работу после того, как пользователь перешел на другую вьюшку (и, соответственно, вьюшка отображения графа закрылась). Как сделать так, чтобы все js-методы прекращали свою работу после выхода из вьюшки?

Есть beforeUnmount, но как-то не хочется вставлять во все циклы проверку "а перешел ли пользователь на другую страницу?" вместо "автоматически завершить все работающие методы, если пользователь уже не видит эту вьюху"

16 ответов

8 просмотров

AbortController

Vyacheslav Гайсин
Что?

Не обращай внимание. Там на своей волне

Stanislav-Rakovsky Автор вопроса

Сорри, снова подниму вопрос: никто не знает автоматического метода прервать работу всего js при переходе с одной вьюшки на другую (и, соответственно, вьюшка unmount-нулась) через роутер? Как-то странно - редачить все вьюшки с axios-запросами Я знаю про AbortController и про то, что можно повесить свой флаг в data, чтобы он стал например false в beforeRouteLeave или beforeUnmount, но это выглядит колхозно)

Stanislav Rakovsky
Сорри, снова подниму вопрос: никто не знает автома...

Нет, такого метода нет. Вам нужен не "весь JS", а лишь маленькая часть с вашими запросами. Создают ли проблему отправленные запросы со страницы, с которой вы уходите? Но, если не делать SPA, то буквально весь JS останавливается при переходе - загружается новый документ =D

Stanislav-Rakovsky Автор вопроса
Grigorii K. Shartsev
Нет, такого метода нет. Вам нужен не "весь JS", а ...

Проект "испещрен" запросами, придется добавлять проверку перед каждым из множества запросов, поэтому надеялся на радикальный вариант разрешения ситуации) Спасибо за ответ)

а что за запросы которые надо именно на фронте оборвать?

Stanislav-Rakovsky Автор вопроса
Alex SAS
а что за запросы которые надо именно на фронте обо...

В моем случае - вечный цикл запроса статуса с периодичностью в 30 секунд. Перешел на другую часть сайта - а обновления всё равно запрашиваются закрытой вьюшкой)

Stanislav Rakovsky
В моем случае - вечный цикл запроса статуса с пери...

так активную вьюшку по роутеру например можно же найти?

Stanislav-Rakovsky Автор вопроса
Master Craftsman
так ты неправильно сделал, надо исправлять

Не, всё правильно, там дашборд, который подтягивает информацию с нескольких бэков. Траббла в том, что оно не останавливается при переходе на другую подстраницу в рамках роутера. Я понимаю, что могу в цикл вставить проверку, активна ли сейчас вьюшка, но хотелось более простой жизни)

Stanislav-Rakovsky Автор вопроса
Alex SAS
так активную вьюшку по роутеру например можно же н...

А как этой информацией я могу в итоге воспользоваться в данном сценарии?

Stanislav Rakovsky
А как этой информацией я могу в итоге воспользоват...

если есть активная вкладка то запрос идет, если нет то цикл пусть и работает, но без запроса на сервер это то что в голову приходит но тут явно реализовать можно по другому, без цикла может через таймер, который завязать возможно на активность пользователя..., но это так мысли в слух

Stanislav Rakovsky
Проект "испещрен" запросами, придется добавлять пр...

Можно сделать компосабл для запросов, который в unmounted будет их убирать. Но действительно ли у вас запросы так часто

Stanislav Rakovsky
В моем случае - вечный цикл запроса статуса с пери...

Если что-то запускается с периодичностью - это интервал. Все запущенные интервалы в компоненте надо чистить в unmounted

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта