web-dev-qa-db-ja.com

location.hrefまたはwindow.location.reload(true)でページをリロードします

Ajax呼び出しの成功時にページをリロードする必要があります。

いくつかのコード(私のコードではない)が表示されていますが、2つの方法があります。

success : function(obj) {
//code
        location.href = location.href;
    }

または

success : function(obj) {
//code
        window.location.reload(true);
    }

動作に違いはありますか? locationとwindow.locationの両方の違いを知っていますが、仕事はどうですか?

11
pmiranda

主な違いは次のとおりです。

window.location.reload()は、現在のページをPOSTデータでリロードしますが、window.location.href = 'your url'はPOSTデータを含みません。

さらに、window.location.reload(true)メソッドはサーバーからページをリロードします。そして、ブラウザはキャッシュをスキップします。

たとえば、successリクエストからAJAX関数を使用していることがわかります。

次のメソッドがあるとします:

_[OutputCache(Duration=600)]
public ActionResult Homepage(){
   //code here
   return View();
}
_

_window.location.href="location_URL"_を使用している場合、ブラウザは_600_秒、つまり10分間データをキャッシュします。

一方、window.location.reload(true)を使用すると、ブラウザーはキャッシュをスキップし、サーバーからページをリロードします。

13