jQueryでページを更新するにはどうすればよいですか?
jQueryでページを更新するにはどうすればよいですか?
回答:
$('#something').click(function() {
location.reload();
});
このreload()
関数はtrue
、キャッシュではなくサーバーから強制的にリロードするように設定できるオプションのパラメーターを取ります。パラメータのデフォルトfalse
はなので、デフォルトではページがブラウザのキャッシュから再読み込みされます。
window.location.href=window.location.href;
そして location.href=location.href;
働いた。
window.location.reload(true);
ハードリフレッシュします。それ以外の場合はデフォルトでfalseになります
location.reload();
は標準のJavaScriptです。jQueryは必要ありません。
JavaScriptでページを更新する方法は無制限に複数あります。
location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
ドキュメントをWebサーバーから再度プルする必要がある場合(ドキュメントのコンテンツが動的に変化する場合など)、引数をとして渡します
true
。
クリエイティブなリストを続けることができます:
window.location = window.location
window.self.window.self.window.window.location = window.location
var methods = [
"location.reload()",
"history.go(0)",
"location.href = location.href",
"location.href = location.pathname",
"location.replace(location.pathname)",
"location.reload(false)"
];
var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
(function(cMethod) {
$body.append($("<button>", {
text: cMethod
}).on("click", function() {
eval(cMethod); // don't blame me for using eval
}));
})(methods[i]);
}
button {
background: #2ecc71;
border: 0;
color: white;
font-weight: bold;
font-family: "Monaco", monospace;
padding: 10px;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.5s ease;
margin: 2px;
}
button:hover {
background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(reload()/(false))
は遅くなります。うーん。面白い。:)と1と6はreload()
デフォルトのパラメータと同じですfalse
。
location.href = location.href
私がいつも使っているものですが、他の人に感謝します。非常に便利!+1
多くの方法が機能すると思います:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
window.location.href=window.location.href;
は何もしませんexample.com/something#blah
:
location.reload()
との違いを誰かが疑問に思っている場合は、何history.go(0)
もありません。w3.org/TR/html5/browsers.html#dom-history-goの HTML 5仕様の関連セクションでは、これらが同等であることを明示的に規定しています。「go(delta)
メソッドが呼び出されたとき、メソッドの引数が省略されているか、値がゼロの場合、ユーザーエージェントは、location.reload()
メソッドが代わりに呼び出されたかのように動作する必要があります。」
jQueryでページをリロードするには、次のようにします。
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
ここで私が使用したアプローチはAjax jQueryでした。Chrome 13でテストしました。次に、リロードをトリガーするハンドラーにコードを配置しました。URLは、ある""
意味、このページを。
context
パラメーターを誤解し$.ajax
ており、何らかの形で何らかの魔法を実行すると期待しています。すべてのそれはされない設定this
のコールバック関数の値を。のURLへのAjaxは、""
現在使用しているURLにヒットするため、通常は完全なHTML(<html>
and <head>
およびを含む<body>
)がロードされます。この回答では、不要なものを除外しません。
現在のページがPOSTリクエストによって読み込まれた場合は、
window.location = window.location.pathname;
の代わりに
window.location.reload();
なぜならwindow.location.reload()
POSTリクエストによってロードされたページに呼び出された場合、確認のプロンプトが表示されます。
window.location = window.location
ただし、@ mrmillsy も不完全です。現在のURLに脆弱(ハッシュバング)がある場合は何もしません。
問題は、
JavaScriptでページを更新する方法
window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another
あなたは選択のために台無しにされています。
キャッシュ関連の動作が異なる3つのアプローチ:
location.reload(true)
のforcedReload
パラメータを実装するブラウザでlocation.reload()
は、ページとそのすべてのリソース(スクリプト、スタイルシート、画像など)の新しいコピーをフェッチすることによって再ロードします。サーブはありません任意のキャッシュからリソースを-任意の送信せずに、サーバーからの新鮮なコピーを取得するif-modified-since
か、if-none-match
リクエストのヘッダーを。
ユーザーがブラウザで「ハードリロード」を実行するのと同じです。
true
への受け渡しlocation.reload()
は、Firefox(MDNを参照)およびInternet Explorer(MSDNを参照)でサポートされていますが、普遍的にはサポートされておらず、W3 HTML 5仕様、W3ドラフトHTML 5.1仕様、WHATWG HTML Living Standardの一部ではありません。
Google Chromeなどのサポートされていないブラウザでlocation.reload(true)
は、と同じように動作しlocation.reload()
ます。
location.reload()
または location.reload(false)
リロードページ、ページのHTML自体の新鮮な、非キャッシュされたコピーを取得し、実行するRFC 7234、ブラウザがキャッシュされたこと(スクリプトのような)任意のリソースに対する再検証要求を彼らがしている場合でも新鮮 RFC 7234ですが機能するようにブラウザを許可します再検証なしで。
location.reload()
呼び出しを実行するときにブラウザがキャッシュをどのように利用するかは、私が知る限り、指定または文書化されていません。上記の動作は実験により決定しました。
これは、ユーザーがブラウザの「更新」ボタンを押すだけの場合と同じです。
location = location
(またはlocation
、そのプロパティへの、またはそのプロパティへの割り当てを含む、無限に多くの可能な技術)ページのURLにfragid / hashbangが含まれていない場合にのみ機能します。
再フェッチまたは再確認せずにページをリロード任意の 新鮮なキャッシュからリソースを。ページのHTML自体が新しい場合は、HTTPリクエストをまったく実行せずにページをリロードします。
これは、(キャッシュの観点から)ユーザーが新しいタブでページを開いた場合と同じです。
ただし、ページのURLにハッシュが含まれている場合、これは効果がありません。
繰り返しますが、ここでのキャッシング動作は、私が知る限り、特定されていません。テストで決定しました。
つまり、要約すると、次のように使用します。
location = location
ページのURLにハッシュが含まれていない限り、キャッシュを最大限に使用します。この場合、これは機能しません。location.reload(true)
再検証せずにすべてのリソースの新しいコピーを取得する(ただし、これは普遍的にサポートさlocation.reload()
れているわけではなく、Chromeなどの一部のブラウザーと同じように動作します)location.reload()
ユーザーが「更新」ボタンをクリックしたときの効果を忠実に再現するため。location = location
に、URLにハッシュがある場合は機能しません。fragidsを使用するサイトの場合-または、ページにリンクしている誰かがURLにfragidを追加する可能性があるサイトの場合-これにより、ページが壊れます。
window.location.reload()
サーバーからリロードし、すべてのデータ、スクリプト、画像などを再度ロードします。
したがって、HTMLを更新するだけの場合は、window.location = document.URL
トラフィックが少なくて済みます。ただし、URLにハッシュ(#)がある場合、ページはリロードされません。
location.reload()
引数がない場合でも、キャッシュされたリソースの再検証を強制しますが、window.location = document.URL
キャッシュされたリソースが新しい限り、サーバーにヒットすることなく提供されます。
jQuery Load
関数は、ページの更新も実行できます。
$('body').load('views/file.html', function () {
$(this).fadeIn(5000);
});
質問は一般的なものなので、答えの可能な解決策を要約してみましょう。
単純なプレーンJavaScriptソリューション:
最も簡単な方法は、適切な方法で配置された1行のソリューションです。
location.reload();
彼らがいくつかの「ポイント」を得ることを望んでいるので、多くの人々がここで欠けているのは、reload()関数自体がブール値をパラメーターとして提供することです(詳細:https : //developer.mozilla.org/en-US/docs/Web / API / Location / reload)。
Location.reload()メソッドは、現在のURLからリソースをリロードします。オプションの一意のパラメータはブール値であり、これがtrueの場合、ページは常にサーバーから再ロードされます。falseであるか、指定されていない場合、ブラウザはキャッシュからページを再読み込みする場合があります。
つまり、2つの方法があります。
解決策1:サーバーから現在のページを強制的に再読み込みする
location.reload(true);
Solution2:キャッシュまたはサーバーからのリロード(ブラウザーと設定に基づく)
location.reload(false);
location.reload();
イベントをリッスンするjQueryと組み合わせたい場合は、「。click」や他のイベントラッパーの代わりに「.on()」メソッドを使用することをお勧めします。たとえば、より適切な解決策は次のとおりです。
$('#reloadIt').on('eventXyZ', function() {
location.reload(true);
});
jQueryを使用してページを非同期に再読み込みするソリューションを次に示します。によるちらつきを防ぎwindow.location = window.location
ます。この例は、ダッシュボードのように、継続的にリロードするページを示しています。これは、テスト済みで、タイムズスクエアの情報ディスプレイテレビで実行されています。
<!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>
ノート:
$.ajax
ように直接$.get('',function(data){$(document.body).html(data)})
キャッシュ逮捕取得する原因CSS / JSファイルは、使用しても、cache: true
我々が使用する理由です、parseHTML
parseHTML
body
タグが見つからないので、あなたの全身が余分なdivに入る必要があります。この知識のナゲットがいつかあなたを助けてくれることを願っています。div
http-equiv="refresh"
javascript / server hiccupで何か問題が発生した場合に備えて使用します。その後、電話を受けることなくページがリロードされます。http-equiv
リフレッシュはそれを修正します見つけた
window.location.href = "";
または
window.location.href = null;
また、ページを更新します。
これにより、ハッシュを削除してページをリロードすることが非常に簡単になります。これは、iOSシミュレーターでAngularJSを使用しているときにとても便利なので、アプリを再実行する必要はありません。
JavaScript location.reload()
メソッドを使用できます 。このメソッドはブールパラメータを受け入れます。true
またはfalse
。パラメータが true
; ページは常にサーバーから再読み込みされます。もしそうならfalse
; これはデフォルトであるか、パラメーターブラウザーが空の場合、ページをキャッシュから再読み込みします。
true
パラメータ
<button type="button" onclick="location.reload(true);">Reload page</button>
default
/ false
パラメータ
<button type="button" onclick="location.reload();">Reload page</button>
jqueryの使用
<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
$('#Reloadpage').click(function() {
location.reload();
});
</script>
あなたは必要ありません使用してページをリロードし、jQueryのから何かを純粋なJavaScriptをちょうどこのような場所のプロパティにリロード機能を使用し、:
window.location.reload();
デフォルトでは、ブラウザのキャッシュ(存在する場合)を使用してページを再読み込みします...
ページを強制的に再読み込みしたい場合は、以下のようにtrue値をreloadメソッドに渡してください...
window.location.reload(true);
また、すでにwindowスコープにいる場合は、windowを削除して次のように実行できます。
location.reload();
使用する
location.reload();
または
window.location.reload();
jQueryを使用していて更新したい場合は、JavaScript関数にjQueryを追加してみてください。
をクリックしてiframeをページから非表示にしたいのh3
ですが、動作しましたがiframe
、ブラウザーを手動で更新しない限り、最初にを表示できるアイテムをクリックできませんでした。理想的ではありません。
私は以下を試しました:
var hide = () => {
$("#frame").hide();//jQuery
location.reload(true);//javascript
};
プレーンジェーンJavaScriptとjQueryを混在させることで機能するはずです。
// code where hide (where location.reload was used)function was integrated, below
iFrameInsert = () => {
var file = `Fe1FVoW0Nt4`;
$("#frame").html(`<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/${file}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe><h3>Close Player</h3>`);
$("h3").enter code hereclick(hide);
}
// View Player
$("#id-to-be-clicked").click(iFrameInsert);
ここでの答えはすべて良いです。質問は、ページのリロードについて指定しているのでjquery、私は将来の読者のために何かを追加すると思った。
jQueryは、HTMLのクライアント側スクリプトを簡素化するように設計されたクロスプラットフォームの JavaScriptライブラリです。
〜ウィキペディア〜
だからあなたはの基礎を理解するでしょう jquery、または jquery に基づいています JavaScript。だから純粋に行くJavaScript シンプルなことに関しては、はるかに優れています。
しかし、必要な場合 jquery 解決策はこちらです。
$(location).attr('href', '');
現在のページをリロードする方法はたくさんありますが、どういうわけかこれらのアプローチを使用すると、ページが更新されているのを確認できますが、キャッシュ値が少ないわけではないので、その問題を克服するか、ハードリクエストを行いたい場合は、以下のコードを使用します。
location.reload(true);
//Here, it will make a hard request or reload the current page and clear the cache as well.
location.reload(false); OR location.reload();
//It can be reload the page with cache
おそらく最短(12文字)-使用履歴
history.go()
あなたはそれを2つの方法で書くことができます。1つ目は、単純な更新とも呼ばれる、ページを再ロードする標準的な方法です
location.reload(); //simple refresh
もう1つはハードリフレッシュと呼ばれます。ここでは、ブール式を渡してtrueに設定します。これにより、ページがリロードされて古いキャッシュが破棄され、コンテンツが最初から表示されます。
location.reload(true);//hard refresh
JavaScriptでは最短です。
window.location = '';
jQueryを使用してページをリロードするために使用できるコード行をいくつか次に示します。
jQueryラッパーを使用し、ネイティブのdom要素を抽出します。
コードでjQueryを使用したいだけで、コードの速度/パフォーマンスを気にしない場合は、これを使用してください。
ニーズに合った1〜10を選択するか、パターンと回答に基づいてさらに追加してください。
<script>
$(location)[0].reload(); //1
$(location).get(0).reload(); //2
$(window)[0].location.reload(); //3
$(window).get(0).location.reload(); //4
$(window)[0].$(location)[0].reload(); //5
$(window).get(0).$(location)[0].reload(); //6
$(window)[0].$(location).get(0).reload(); //7
$(window).get(0).$(location).get(0).reload(); //8
$(location)[0].href = ''; //9
$(location).get(0).href = ''; //10
//... and many other more just follow the pattern.
</script>