これを示すJavaScriptコードを実装したいと思います。ページが完全に読み込まれた場合は、ページをすぐに更新しますが、1回だけ更新します。私は「一度だけ」で立ち往生しています:
window.onload = function () {window.location.reload()}
これにより、「1回だけ」のないループが発生します。これが役立つ場合、jQueryがロードされます。
これを示すJavaScriptコードを実装したいと思います。ページが完全に読み込まれた場合は、ページをすぐに更新しますが、1回だけ更新します。私は「一度だけ」で立ち往生しています:
window.onload = function () {window.location.reload()}
これにより、「1回だけ」のないループが発生します。これが役立つ場合、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回だけリロードされます。私もこの問題に直面し、検索したときに、この素晴らしい解決策を見つけました。これは私にとってはうまくいきます。
このリンクを確認してください。このリンクには、ページを1回だけ更新するために使用できるjavaスクリプトコードが含まれています。
ページを更新する方法は複数あります。
解決策1:
ページを開くたびに1回更新するには、次を使用します。
<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()" >
解決策3:
response.setIntHeader("Refresh", 1);
ただし、このソリューションは、指定した時間に応じて、ページを複数回更新します
それがあなたのお役に立てば幸いです
最後に、2か月の調査の後、ページを1回リロードするためのソリューションを入手しました。
クライアントサイドのJSプロジェクトでは問題なく動作します。
以下のページを1回だけリロードする関数を作成しました。
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>
タグの後:
<script type="text/javascript">
if (location.href.indexOf('reload')==-1)
{
location.href=location.href+'?reload';
}
</script>
GETまたはPOST情報のいずれかを使用する必要があります。GETが最も簡単です。JSはURLをチェックします。特定のパラメーターが見つからない場合は、ページを更新するだけでなく、ユーザーを「別の」URLに送信します。これは、同じURLですが、GETパラメーターが含まれています。 。
例:
http://example.com- >更新されます
http://example.com?refresh=no- >更新されません
乱雑なURLが必要ない場合は、本文の先頭にPHPを含めます。これは、ページを更新しないために必要なPOSTパラメーターが最初のページリクエストに含まれているかどうかを本質的に示す非表示の値をエコーします。その直後に、JSを含めてその値を確認し、必要に応じてそのPOST情報でページを更新します。
これで試してください
var element = document.getElementById('position');
element.scrollIntoView(true);`
以下のコードを試してください
var windowWidth = $(window).width();
$(window).resize(function() {
if(windowWidth != $(window).width()){
location.reload();
return;
}
});
これを使って
<body onload = "if (location.search.length < 1){window.location.reload()}">
window.localStorage ...をこのように使用します
var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
$window.localStorage.setItem('refresh', "1");
}
それは私のために働いています
これは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);
}
}
受け入れられた回答は、最小限のコードを使用し、理解しやすいものです。私はこれに別の解決策を提供しました。
これが他の人に役立つことを願っています。