これを示すJavaScriptコードを実装したいと思います。ページが完全に読み込まれた場合、ページをすぐに更新しますが、一度だけ更新します。私は「一度だけ」で立ち往生しています:
window.onload = function () {window.location.reload()}
これにより、「一度だけ」のないループが得られます。これが役立つ場合、jQueryがロードされます。
私は次のようにハッシュを使用すると言います:
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
この問題に遭遇すると、ここまで検索しますが、ほとんどの回答は既存のURLを変更しようとしています。ここでは、localStorageを使用してうまくいく別の答えがあります。
<script type='text/javascript'>
(function()
{
if( window.localStorage )
{
if( !localStorage.getItem('firstLoad') )
{
localStorage['firstLoad'] = true;
window.location.reload();
}
else
localStorage.removeItem('firstLoad');
}
})();
</script>
<script type="text/javascript">
$(document).ready(function(){
//Check if the current URL contains '#'
if(document.URL.indexOf("#")==-1){
// Set the URL to whatever it was plus "#".
url = document.URL+"#";
location = "#";
//Reload the page
location.reload(true);
}
});
</script>
If条件のために、ページは1回しかリロードされません。この問題にも直面し、検索すると、この素敵なソリューションが見つかりました。これは私にとってはうまくいきます。
このリンクにJavaスクリプトコードが含まれていることを確認します。このコードを使用すると、ページを1回だけ更新できます。
ページを更新する方法は複数あります。
solution1:
開くたびにページを更新するには、次を使用します。
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
sollution2:
<script language=" JavaScript" >
<!--
function LoadOnce()
{
window.location.reload();
}
//-->
</script>
次に、言うように変更します
<Body onLoad=" LoadOnce()" >
solution3:
response.setIntHeader("Refresh", 1);
ただし、このソリューションは、指定した時間に応じて複数回ページを更新します
それがお役に立てば幸いです
私はこれをページのヘッドタグに入れて、1回リロードしたい:
<?php if(!isset($_GET['mc'])) {
echo '<meta http-equiv="refresh" content= "0;URL=?mc=mobile" />';
} ?>
値「mc」は任意に設定できますが、2行で両方が一致する必要があります。 「= mobile」は「= anythingyouwant」にすることができ、更新を停止するには値が必要です。
</body>
タグの後:
<script type="text/javascript">
if (location.href.indexOf('reload')==-1)
{
location.href=location.href+'?reload';
}
</script>
GETまたはPOST情報を使用する必要があります。 GETは最も簡単です。 JSはURLをチェックします。特定のパラメーターが見つからなかった場合、ページを更新するのではなく、「異なる」URLにユーザーを送信します。これは、同じURLでGETパラメーターを含むURLです。 。
例えば:
http://example.com ->更新します
http://example.com?refresh=no ->更新しない
乱雑なURLが必要ない場合は、必要なPHPパラメータが必要かどうかを本質的に示す隠し値をエコーするPOSTを本文の先頭に含めます。ページを更新しないことは、最初のページリクエストに含まれていました。その直後に、JSを含めてその値を確認し、必要に応じてそのPOST情報でページを更新します。
以下のコードを試してください
var windowWidth = $(window).width();
$(window).resize(function() {
if(windowWidth != $(window).width()){
location.reload();
return;
}
});
var foo = true;
if (foo){
window.location.reload(true);
foo = false;
}
このようにwindow.localStorage ...を使用します
var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
$window.localStorage.setItem('refresh', "1");
}
それは私の仕事です
これで試してください
var element = document.getElementById('position');
element.scrollIntoView(true);`
最後に、2か月の調査の後、ページをリロードするためのソリューションが得られました。
クライアントサイドのJSプロジェクトでは問題なく動作します。
以下のページをリロードする関数を一度だけ作成しました。
1)最初にブラウザーのロード時間を取得する
2)現在のタイムスタンプを取得する
3)ブラウザの読み込み時間+ 10秒
4)現在のタイムスタンプよりもブラウザの読み込み時間が10秒長い場合、ページは「reloadPage();」で更新できます。
ただし、10秒以下の場合、ページがリロードされるだけであるため、繰り返しリロードされません。
5)したがって、「reloadPage();」を呼び出すとあなたのjsファイルページのどこかにある関数は一度だけリロードされます。
それが誰かを助けることを願っています
// Reload Page Function //
function reloadPage() {
var currentDocumentTimestamp = new Date(performance.timing.domLoading).getTime();
// Current Time //
var now = Date.now();
// Total Process Lenght as Minutes //
var tenSec = 10 * 1000;
// End Time of Process //
var plusTenSec = currentDocumentTimestamp + tenSec;
if (now > plusTenSec) {
location.reload();
}
}
// You can call it in somewhere //
reloadPage();
これを使って
<body onload = "if (location.search.length < 1){window.location.reload()}">
SetTimeoutを使用した別のソリューションは完璧ではありませんが、機能します。
現在のURLにパラメーターが必要なので、現在のURLのイメージは次のようになります。
www.google.com?time=1
次のコードは、ページを1回だけ再読み込みします。
// Reload Page Function //
// get the time parameter //
let parameter = new URLSearchParams(window.location.search);
let time = parameter.get("time");
console.log(time)//1
let timeId;
if (time == 1) {
// reload the page after 0 ms //
timeId = setTimeout(() => {
window.location.reload();//
}, 0);
// change the time parameter to 0 //
let currentUrl = new URL(window.location.href);
let param = new URLSearchParams(currentUrl.search);
param.set("time", 0);
// replace the time parameter in url to 0; now it is 0 not 1 //
window.history.replaceState({}, "", `${currentUrl.pathname}?${param}`);
// cancel the setTimeout function after 0 ms //
let currentTime = Date.now();
if (Date.now() - currentTime > 0) {
clearTimeout(timeId);
}
}
受け入れられた答えは最小限のコードを使用し、理解しやすいです。これに対する別の解決策を提供しました。
これが他の人に役立つことを願っています。