JQuery スライド ショーを作成しますが、コンテンツを変更するために 5 分ごとにページを更新する必要があります。
Javascriptを介してこれを行うことができることは知っていますが、これはクライアント側で変更して、ページの更新を回避できます。サーバーがページをタイムアウトして強制的に更新する方法はありますか?
JQuery スライド ショーを作成しますが、コンテンツを変更するために 5 分ごとにページを更新する必要があります。
Javascriptを介してこれを行うことができることは知っていますが、これはクライアント側で変更して、ページの更新を回避できます。サーバーがページをタイムアウトして強制的に更新する方法はありますか?
JavaScript のリロードに加えて、リフレッシュ ヘッダーを送信できます。
header("Refresh: 300;url='http://thepage.com/example'");
JavaScript に関係なく、ブラウザは 300 秒後にリダイレクトします。ただし、ブラウザの構成で無効にすることはできますが、一般的に無効にすることはありません。
メタリフレッシュは非常に簡単に機能します。
<meta http-equiv="refresh" content="300">
300は、300秒または5分ごとに更新されることを意味します。この方法ではJavaScriptを使用しないため、ユーザーがJavaScriptをオフにすることはできません。
サーバーからページを強制的にリロードする方法はありません。
JavaScript でそれを行う方法は簡単です。
setTimeout(function() {
window.location.reload();
}, 5000);
これはクライアント側でオーバーライドできますが、通常のユーザーがスクリプトをいじることはありません。
余談ですが、ページのリロードに固執している理由はありますか?
JavaScript メソッド
var timer = null;
function auto_reload()
{
window.location = 'http://domain.com/page.php';
}
<body onload="timer = setTimeout('auto_reload()',10000);">
META タグ方式
The following refreshes the page every 30 seconds.
<head>
<meta http-equiv="refresh" content="30" />
</head>
URLを設定せずに任意のページで呼び出すことができるphp関数を使用します
// write the function
function refresh( $time ){
$current_url = $_SERVER[ 'REQUEST_URI' ];
return header( "Refresh: " . $time . "; URL=$current_url" );
}
// call the function in the appropriate place
refresh( 4 );
// this refreshes page after 4 seconds
そのリロードを行う別の方法は、次を使用することですwindow.location
。
setTimeout(function(){
window.location.href = "YOUR_PAGE_URL";
}, 5000);