[javascript] jQueryでページを更新するにはどうすればよいですか?



Answers

これはjQueryを使わなくてもすべてのブラウザで動作するはずです。

location.reload();
Question

jQueryでページを更新するにはどうすればよいですか?




ここでは、jQueryを使用して非同期的にページをリロードするソリューションを示します。 window.location = window.locationによって引き起こされるちらつきを回避します。 この例では、ダッシュボードのように、連続してリロードされるページを示しています。 戦闘テスト済みでタイムズスクエアの情報ディスプレイTVで動いています。

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
    <meta http-equiv="refresh" content="300">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script>
    function refresh() {
      $.ajax({
        url: "",
        dataType: "text",
        success: function(html) {
          $('#fu').replaceWith($.parseHTML(html));
          setTimeout(refresh,2000);
        }
      });
    }
    refresh();
    </script>
  </head>
  <body>
    <div id="fu">
      ...
    </div>
  </body>
</html>

ノート:

  • $.get('',function(data){$(document.body).html(data)})ような$.ajax直接使用すると、 cache: trueを使用していてもcss / jsファイルがキャッシュ破棄され cache: true 。そのため、 parseHTMLを使用していparseHTML
  • parseHTMLbodyタグを見つけられないので、 body全体が余分なdivに入る必要があります。このナゲットの知識があなたをいつか助けてくれることを願っています。
  • http-equiv="refresh"使用するとjavascript / server hiccupに何か問題が生じた場合に備えて、電話をかけなくてもページが再読み込みされます
  • このアプローチはおそらく何らかの形でメモリをリークし、 http-equiv refreshはそれを修正します



現在のページがPOST要求によって読み込まれた場合は、

window.location = window.location.pathname;

の代わりに

window.location.reload();

なぜなら、 window.location.reload()は、POSTリクエストによってロードされたページで呼び出された場合、確認のプロンプトを表示するからです。




window.location.reload()はサーバーからリロードし、すべてのデータ、スクリプト、イメージなどを再度読み込みます。

したがって、HTMLをリフレッシュするだけの場合、 window.location = document.URLは、より迅速かつ少ないトラフィックで返されます。 しかし、URLにハッシュ(#)がある場合、ページをリロードしません。




リロード機能

reload: function() {
    location.reload();
},

リロードクリックイベント

$("a").click(function(){
    location.reload();
})



私は見つけた

window.location.href = "";

または

window.location.href = null;

また、ページを更新します。

これにより、ページをリロードしてハッシュを削除するのが非常に簡単になります。 これはiOSシミュレータでAngularJSを使用しているため、アプリを再実行する必要がないため非常に便利です。




方法の多くは、私は仮定:

  • window.location.reload();
  • history.go(0);
  • window.location.href=window.location.href;



あなたは、

location.reload(forceGet)

forceGetはブール値でオプションです。

デフォルトはfalseで、キャッシュからページをリロードします。

ブラウザからサーバからページを取得させてキャッシュをも削除させたい場合は、このパラメータをtrueに設定します。

あるいは単に

location.reload()

あなたがすばやく簡単にキャッシングしたいならば。






Related