Mam następujący kod przekierowania javascript, a następnie trochę więcej kodu.Co dzieje się z kodem po przekierowaniu javascript (ustawienie window.location.href)?
window.location.href = '/someurl';
alert('hello');
alert('hello again');
Powoduje to niespójność przeglądarki.
W firefox pierwszy alert jest widoczny przez ułamek sekundy tuż przed przekierowaniem. Drugi alert nie jest w ogóle widoczny.
W chrome oba alerty pojawią się, a przekierowanie nastąpi dopiero po kliknięciu przycisku OK dla obu alertów.
Czy istnieje pojęcie, co dzieje się z kodem po przekierowaniu, które może rozwiązać te różnice? Jeśli przekierowanie jest asynchroniczne, to co robi chrome? Chciałbym zrozumieć, co się dzieje, abym mógł zdecydować, co zrobić w bardziej skomplikowanym scenariuszu, w którym przekierowanie jest głęboko ukryte w ramach niektórych zwrotów i innej logiki.
Dlaczego chcesz zrobić coś po przekierowaniu? – Musa
Wszystko zależy od czasu - po zmianie lokalizacji nie można polegać na tym, jak długo potrwa przetwarzanie/renderowanie/etc. –
@Musa Właściwie nie chcę nic robić po przekierowaniu, dlatego pojawiło się to pytanie. Na przykład, jeśli przekierowanie ma nastąpić w wywołaniu wywoływanym przez inny kod biblioteki, mogą istnieć inne rzeczy, które zostaną wykonane przez bibliotekę po tym, jak biblioteka wywoła moje wywołanie zwrotne. Ale jeśli po prostu chcę przekierować stronę bez uruchamiania innych rzeczy, być może powinienem coś zrobić, aby zapobiec jej kontynuacji w normalny sposób, w zależności od tego, co przeglądają przeglądarki. – user1385729