次のJavaScriptリダイレクトコードの後にコードを追加しました。javascriptのリダイレクト(window.location.hrefの設定)後のコードはどうなりますか?
window.location.href = '/someurl';
alert('hello');
alert('hello again');
これは、ブラウザの不一致を引き起こします。
firefoxでは、リダイレクトされる直前に最初のアラートが1秒間表示されます。 2番目のアラートはまったく表示されません。
クロムでは、両方のアラートがポップアップし、両方のアラートで[OK]をクリックするとリダイレクトが行われます。
これらの違いを解決できるリダイレクト後に何が起こるかの概念はありますか?リダイレクトが非同期の場合、クロムは何をしていますか?何が起きているのか理解したいので、コールバックや他のロジックの中にリダイレクトが深く埋もれている、より複雑なシナリオで何をすべきかを判断することができます。
リダイレクト後に何をしたいのですか? – Musa
これはすべてタイミングに依存します。一度位置を変更すると、プロセス/レンダリングにかかる時間に依存できません。 –
@Musa実際にはリダイレクト後に何もしたくないので、この質問が出てきました。例えば、他のライブラリのコードからトリガされたコールバックでリダイレクトが発生すると想定される場合、ライブラリがコールバックを呼び出した後にライブラリによって実行される他のものが存在する可能性があります。しかし、他のものを動かさずにページをリダイレクトしたいのであれば、ブラウザが何をしようとしているかに応じて、通常通り続行しないようにする必要があります。 – user1385729