回答:
私の記憶が正しければwindow.location.reload()、現在のページにPOSTデータをリロードしますが、POSTデータwindow.location.href=window.location.hrefは含まれません。
以下のコメントの@ W3Maxで注記されているようwindow.location.href=window.location.hrefに、URLにアンカー(#)がある場合はページをリロードしません- window.location.reload()この場合は使用する必要があります。
また、以下の@Micで説明されているように、ブラウザを使用してキャッシュをスキップし、サーバーからページをリロードするようにwindow.location.reload()、追加の引数を取ります。反対のことを行い、可能であればキャッシュからページをロードします。skipCachewindow.location.reload(true)window.location.reload(false)
window.location.reload(true)ブラウザがキャッシュをスキップしてサーバーからページをリロードすると言う場合。window.location.reload(false)逆になります。
注:のdefault値window.location.reload()はfalse
window.location.href = window.location.hrefうまくいった。
location.reload()またはを使用するときに、ブラウザによっては変更が消える(キャッシュされた値に戻る)場合がありlocation.reload(false)ます。ページを完全に更新するには、を使用しますlocation.reload(true)。
違いは
window.location = document.URL;
URLにハッシュ(#)がある場合(その後に何かがあるかどうかにかかわらず)、ページはリロードされませんが、
window.location.reload();
ページをリロードします。
location.href = location.hrefは当たり前のことと思っていましたが、その正確な振る舞いに気づき、広めるためにSOに来ました。location.reload()代わりに使用してください。
window.location.replace(window.location.pathname);
リロードにブール値trueを追加すると、
window.location.reload(true)サーバーからロードされます。
このブール値がどのようにサポートされているかは明らかではありません、W3OrgはNS がサポートしていたと述べていますそれて
window.location.hrefとdocument.URLの内容に違いがあるかもしれません-少なくとも、location.hrefと非標準で非推奨のdocument.locationの違いがありました。リダイレクトに関連が、本当に最後の千年紀です。
ドキュメント化の目的で、私はwindow.location.reload()を使用します。
IE、特にIE9の異常な動作を調査しているこの質問に出くわして、古いバージョンはチェックされませんでした。そうみたいです
window.location.reload();
結果として、画面全体が1秒間空白になる更新が行われます。
window.location = document.URL;
ページをはるかに速く、ほとんど気づかずに更新します。
もう少し調査を行い、フィドラーでいくつかの実験をwindow.location.reload()行います。ブール値を渡すかどうかに関係なく、キャッシュをバイパスしてサーバーからリロードします。これには、すべてのアセット(画像、スクリプト、スタイルシート、等)再び。したがって、ページでHTMLを更新するだけの場合は、window.location = document.URLがより速く、トラフィックが少なくなります。
ブラウザー間の動作の違いは、IE9がreloadメソッドを使用すると、表示されているページがクリアされ、一見して再構築されるようです。FFとChromeは、新しいアセットを取得するまで待機し、異なる場合は再構築します。
Firefox(12.0)の違いは、POSTからレンダリングされたページでは、reload()が警告をポップアップして再投稿し、URL割り当てはGETを行うことです。
Google Chromeは両方に対してGETを実行します。
JSFを使用して、セッションが期限切れになった後の更新で問題が発生しています:ページのリロード後のPrimeFaces ViewExpiredExceptionといくつかの調査により、FireFoxに1つの違いがあることがわかりました。
呼び出しwindow.location.reload()はFFの更新アイコンをクリックするように機能し、行を追加します
Cache-Control max-age=0
設定中 window.location.hrefはURL行でEnterキーを押すのと同じように機能しますが、その行は送信されません。
どちらもGETとして送信されますが、最初の(リロード)は前のデータを復元しており、アプリケーションは不整合な状態です。
私たちのケースでは、webviewでページをリロードしたいだけで、なぜか理由がわからなかったのです!私たちはウェブ上にあるほとんどすべてのソリューションを試しますが、location.reload()またはwindow.location.reload()、location.reload(true)などの代替ソリューションを使用してリロードしないで立ち往生しています...!
これが私たちの簡単な解決策です:
次のように、空の「href」属性値を持つ<a>タグを使用するだけです。
< a href="" ...>Click Me</a>
(場合によっては、ターゲットのクリックで「return true」を使用してリロードをトリガーする必要があります)
詳細については、この質問を確認してください: 空のhrefは有効ですか?