ページが初めてまたは 1 回読み込まれた後にブラウザーを更新するシナリオがあります。ページの読み込み時にデータが正しく表示されず、ブラウザを更新すると表示されるため、理由がわかりません。
どうもありがとう
ページが初めてまたは 1 回読み込まれた後にブラウザーを更新するシナリオがあります。ページの読み込み時にデータが正しく表示されず、ブラウザを更新すると表示されるため、理由がわかりません。
どうもありがとう
常に、JavaScriptを使用する必要があります。必要なのは、ページが完全に読み込まれたときに更新コードを実行することです。HTMLonload
イベントを使用することもできますが、これには問題があります(たとえば、画像が読み込まれる前に発生します)。ページ全体が読み込まれた後に確実に発生するようにしたい場合は、JQueryのready()
イベントを使用することをお勧めします。
例:
// NOTE: This will only work with JQuery loaded.
$(document).ready(function(){
location.reload(true);
});
これを最初のページの読み込み時にのみ発生させるのは、もう少し注意が必要です。URLにアンカーサフィックスを追加して、ページをまだ更新したかどうかを追跡し、URLに存在しない場合にのみ更新することができます。
$(document).ready(function(){
if(location.hash != "#")
{
// Set the URL to whatever it was plus "#".
// (The page will NOT automatically reload.)
location = "#";
// Reload the page.
location.reload(true);
}
});
または、クエリ文字列を使用することもできます。これにより、変更時にページが自動的に更新されます。
$(document).ready(function(){
var marker = 'r'; // 'r' is for "refreshed"
if(location.search != "?"+marker)
{
// Set the URL to whatever it was plus "?r".
// (This will automatically force a page reload.)
location = "?"+marker;
}
});
警告:これらのサンプルのいずれかを使用して、ユーザーがURLに「#」または「?r」タグを追加した後にページをブックマークすると、ページに再度アクセスしたときにページが更新されません。防弾にしたい場合は、代わりにCookieを使用する必要があります。
ブラウザを一度だけ更新したいですか?このようなことをしてください。
window.onload = function(){
if(!document.location.hash){
window.location = "#loaded";
}
}
またはjquery
$(document).ready(function(){
if(document.location.hash){
window.location = "#loaded";
}
});
しかし、正直なところ、これは一時的な解決策にすぎません。迅速な修正でそれを隠そうとする限り。私はそれがあなたを悩ませるために戻ってくることを保証します. 適切に記述され、構造化されたコードは生涯存続し、将来のプロジェクトでいつでも再利用できます。