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

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

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

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

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

16 ответов

18 просмотров

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
Карта сайта