31

次のjavascriptリダイレクトコードとそれに続くいくつかのコードがあります。

window.location.href = '/someurl';
alert('hello');
alert('hello again');

これにより、ブラウザの不整合が発生します。

Firefoxでは、リダイレクトされる直前に最初のアラートが一瞬表示されます。2番目のアラートはまったく表示されません。

Chromeでは、両方のアラートがポップアップ表示され、リダイレクトは両方のアラートで[OK]をクリックした後にのみ発生します。

これらの違いを解決できるリダイレクト後にコードがどうなるかについての概念はありますか?リダイレクトが非同期の場合、chromeは何をしていますか?リダイレクトが一部のコールバックやその他のロジックの奥深くに埋め込まれている、より複雑なシナリオで何をすべきかを判断できるように、何が起こっているのかを理解したいと思います。

4

2 に答える 2

29

Javascriptセッションは、差し迫った破滅に直面して、その使命を継続するのに苦労します。この方法でのコーディングは予測不可能と見なされます。...そして残酷です。

于 2012-05-10T00:34:56.040 に答える
18

ブラウザはwindow.location.href = 'url'、ページが次のWebアドレスに移動するまでコードを実行しようとするため、実行されるコードの行数はブラウザの速度によって異なります。

于 2012-05-09T23:39:43.930 に答える