меня есть самописная вьюшка, которая делает несколько (от 1 до десятков тысяч) запросов к api для построения графа (запрашивается информация по нодам).
                  
                  
                  
                  
                  
                  Я столкнулся с тем, что функция, отвечающая за запросы и построение графа, не завершает свою работу после того, как пользователь перешел на другую вьюшку (и, соответственно, вьюшка отображения графа закрылась). Как сделать так, чтобы все js-методы прекращали свою работу после выхода из вьюшки?
                  
                  
                  
                  
                  
                  Есть beforeUnmount, но как-то не хочется вставлять во все циклы проверку "а перешел ли пользователь на другую страницу?" вместо "автоматически завершить все работающие методы, если пользователь уже не видит эту вьюху"
                  
                  
                
AbortController
Не обращай внимание. Там на своей волне
 Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Сорри, снова подниму вопрос: никто не знает автоматического метода прервать работу всего js при переходе с одной вьюшки на другую (и, соответственно, вьюшка unmount-нулась) через роутер? Как-то странно - редачить все вьюшки с axios-запросами Я знаю про AbortController и про то, что можно повесить свой флаг в data, чтобы он стал например false в beforeRouteLeave или beforeUnmount, но это выглядит колхозно)
Нет, такого метода нет. Вам нужен не "весь JS", а лишь маленькая часть с вашими запросами. Создают ли проблему отправленные запросы со страницы, с которой вы уходите? Но, если не делать SPA, то буквально весь JS останавливается при переходе - загружается новый документ =D
 Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Проект "испещрен" запросами, придется добавлять проверку перед каждым из множества запросов, поэтому надеялся на радикальный вариант разрешения ситуации) Спасибо за ответ)
а что за запросы которые надо именно на фронте оборвать?
 Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  В моем случае - вечный цикл запроса статуса с периодичностью в 30 секунд. Перешел на другую часть сайта - а обновления всё равно запрашиваются закрытой вьюшкой)
так ты неправильно сделал, надо исправлять
так активную вьюшку по роутеру например можно же найти?
 Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Не, всё правильно, там дашборд, который подтягивает информацию с нескольких бэков. Траббла в том, что оно не останавливается при переходе на другую подстраницу в рамках роутера. Я понимаю, что могу в цикл вставить проверку, активна ли сейчас вьюшка, но хотелось более простой жизни)
 Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Stanislav
                          Rakovsky
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  А как этой информацией я могу в итоге воспользоваться в данном сценарии?
если есть активная вкладка то запрос идет, если нет то цикл пусть и работает, но без запроса на сервер это то что в голову приходит но тут явно реализовать можно по другому, без цикла может через таймер, который завязать возможно на активность пользователя..., но это так мысли в слух
Можно сделать компосабл для запросов, который в unmounted будет их убирать. Но действительно ли у вас запросы так часто
Если что-то запускается с периодичностью - это интервал. Все запущенные интервалы в компоненте надо чистить в unmounted
Обсуждают сегодня