Wiem, jak , jak czekać na ajax, aby zakończyć, ale jeśli mam zamiar przekierować stronę po niektórych wywołań ajax są zwolnione, powinienem czekać na ich zakończenie przed przekierowaniem? Czy to ma znaczenie?Czy muszę czekać na ajax, aby przekierować stronę?
Odpowiedz
Jeśli masz pewność, że wywołanie ajaxa się powiedzie, to po wywołaniu ajax'a przekierowanie nie wpłynie na niego w odniesieniu do serwera. Ale nie zapominaj, że klient może utracić połączenie lub może wystąpić wiele błędów, więc powinieneś poczekać, aby upewnić się, że połączenia były udane. Kolejną kwestią do rozważenia jest to, czy twoje wywołania ajax wpłyną na stronę, do której przekierujesz. W takim przypadku DEFINALNIE poczekaj przed przekierowaniem. Nie będziesz chciał, aby Twój użytkownik został przekierowany na uszkodzoną stronę, ponieważ ich połączenie było powolne lub gdy serwer miał czkawkę.
To prawda. Wywołanie ajax, które zlicza widoki strony, może być po prostu odpalone z zapomnianego. – Lix
Czy ajax jest dobrym sposobem na policzenie odsłon? Nie będzie liczyć użytkowników z wyłączonym JS. –
Tylko około 2% użytkowników ma wyłączony javascript: http://stackoverflow.com/questions/9478737/browser-statistics-on-javascript-disabled. Tak naprawdę to zależy od tego, jak precyzyjnie chcesz być ... Zazwyczaj po prostu ignoruję tych ludzi osobiście. – adavea
Polecam czekanie i obsługę możliwych błędów, które mogą wystąpić.
Uzyskujesz bezpieczne połączenie, wykrywanie błędów, lepsze oprogramowanie, wykonując cały proces synchronicznie, co powoduje, że przekierowanie nadchodzi na końcu.
Możesz spędzić 0,1 sekundy więcej egzekucji, ale kogo to obchodzi?
Nieprawda, to proces, który chcę zrobić z ajax jest czymś, co pasuje do 20secs. Tak więc to obchodzi. – vaso123
Minęło trochę czasu, odkąd zrobiłem ten komentarz. To, co powinno być jasne, a ja zasadniczo sugerowałem to samo co zaakceptowana odpowiedź, jest to, że jeśli możesz absolutnie zagwarantować, że wykonanie zakończy się sukcesem, to na pewno możesz przekierować, ale jest szansa, że połączenie będzie po prostu zgubić się lub pojawi się wyjątek, który chcesz obsłużyć. – Jonast92
Twierdzę, że Ajax po przekierowaniu nie jest dobrym przykładem użycia Ajax. Zamiast tego zalecam wykonanie zwykłego żądania serwera, a następnie zajęcie się wszystkimi operacjami na serwerze przed przekierowaniem do miejsca docelowego.
Spowoduje to uproszczenie wzoru i dużo mniejszy ruch sieciowy. Zalecam używanie Ajax w przypadkach, gdy chcesz uniknąć ponownego ładowania strony. Jednak w twoim scenariuszu planujesz opuścić stronę zaraz po zakończeniu operacji, więc może powinieneś unikać tego, co Ajax Ci daje.
- 1. Jak przekierować nieautoryzowane żądanie Ajax na kontrolerze na stronę logowania? .
- 2. selen-webdriver i czekać na stronę, aby załadować
- 3. JavaScript, aby przekierować z #anchor na oddzielną stronę
- 4. Jak przekierować użytkownika na inną stronę?
- 5. jak przekierować z serwletu na stronę JSP
- 6. Jak "przekierować" plik cookie na inną stronę?
- 7. Ajax Selenium czekać, czy Ajax nie zwraca żadnych elementów?
- 8. Jak przekierować na stronę 404 w routes.rb?
- 9. Jak przekierować stronę na zdarzenie click button
- 10. "Przeładuj stronę, aby uzyskać źródło ..." w AJAX
- 11. webdriver czekać na żądanie ajax w python
- 12. angularjs + kątomierz czekać na wszystkich ajax połączeń do końca/pełnym obciążeniu stronę, przed uruchomieniem testów
- 13. Angular2 czekać na wiele obietnic, aby zakończyć
- 14. Jak uzyskać odpowiedź Ajaxa ASP.NET MVC, aby przekierować na nową stronę zamiast wstawiania widoku do UpdateTargetId?
- 15. Czy muszę ponownie dołączać skrypty PHP w załadowanej stronie ajax?
- 16. Jak czekać na DBMS_SCHEDULER pracy, aby zakończyć
- 17. Jak przekierować na stronę administratora z niestandardową tabelą administracyjną
- 18. Jak przekierować użytkowników na stronę ASP.NET, gdy nie są autoryzowani?
- 19. Jak przekierować stronę za pomocą JavaScript?
- 20. Jak "czekać" na oddzwonienie, aby powrócić?
- 21. Jak przekierować na tę samą stronę po żądaniu POST?
- 22. Selenium czekać na załadowanie zawartości Ajax - podejście uniwersalne
- 23. Jak przekierować URL przeglądarki użytkownika na inną stronę w Nodejs?
- 24. jak przekierować na stronę aspx w akcji kontrolera
- 25. Jak przekierować na ostatnio odwiedzaną stronę w aplikacji Grails?
- 26. Czy muszę wymuszać wyjątki, aby je przetestować?
- 27. Jak przekierować na poprzednią stronę w Ruby On Rails?
- 28. Jak przekierować na inną stronę po 5 minutach?
- 29. Jak przekierować wszystkich użytkowników IE na nową stronę
- 30. Jak czekać na zakończenie zagnieżdżonych żądań asynchronicznych jQuery AJAX?
Domyślam się, że to zależy od tego, czy musisz wykonać obsługę błędu wokół kodu statusu zwróconego przez wywołanie ajax. Jeśli przekierujesz się przed zakończeniem, to skąd wiesz, że przebiegło poprawnie? – JanR