Dartでリダイレクトとリロードを行うための好ましい方法は何ですか?
使用するだけですか:window.location.href = window.location.href
?
URIの変更を処理する方法はいくつかあり、それぞれに独自の目的があります。
ユーザーを別のURIに送信する場合:
window.location.assign('http://google.com')
これはユーザーをGoogleに送り、閲覧履歴(戻るボタンの履歴)を保持します。これは、リンクをクリックするようなものです。
_window.location.href = 'http://google.com'
_
上記と同じですが、それを行う別の方法です。 href
はセッターであり、割り当てが発生します。以前のバージョンの方がきれいだと思います。
window.location.replace('http://google.com');
ただし、 replace()
メソッドの LocalLocation
オブジェクトは、ユーザーをGoogleに送信するだけでなく、元のページも配置しません。セッション履歴では、これはユーザーが終わりのない戻るボタンの悪夢に悩まされることはないことを意味します。
これは基本的にHTTPリダイレクトと同じです。履歴はスキップされます。
リロード/リフレッシュしたいとき。
window.location.assign(window.location.href)
現在のページをまったく同じURIにリロードします。これにはnotにはPOST
データが含まれていません。一部のリソース(画像など)はキャッシュからリロードされる可能性があるため、完全なリロードではない可能性があります。
これは基本的に押すのと同じです F5POST
データの送信をスキップします。
_window.location.href = window.location.href
_
繰り返しますが、前と同じです。
window.location.reload()
この方法でページをリロードすると、POST
データも送信されます。 window.location.reload()
の「JavaScriptバージョン」は、キャッシュをスキップするかどうかを指定するパラメーターもサポートします。ただし、現在のDart実装はそのパラメーターをサポートしておらず、デフォルトでキャッシュからリソースをフェッチします。
このキャッシュパラメータは、ある時点でDartに追加される可能性がありますが、まだ追加されていません。到着したら、最初のパラメータとしてtrue
を渡すだけで、次のようになります。 Ctrl + Shift + R。
<a>
_タグのクリックをシミュレートしたい。window.location.assign(url)
を使用します。
window.location.replace(url)
を使用します。
POST
データを使用します。window.location.reload()
を使用します。
POST
データなし。window.location.assign(window.location.href)
を使用します。
おそらく将来的には利用できません。おそらくwindow.location.reload(true)
でしょう。