午後3時35分など特定の時間にリロードしたいウェブサイトがあります。それ、どうやったら出来るの?特定の時間にWebページを自動的にリロードする方法はありますか?
答えて
次のJavaScriptスニペットを使用すると、特定の時点でリフレッシュすることができます:
function refreshAt(hours, minutes, seconds) {
var now = new Date();
var then = new Date();
if(now.getHours() > hours ||
(now.getHours() == hours && now.getMinutes() > minutes) ||
now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) {
then.setDate(now.getDate() + 1);
}
then.setHours(hours);
then.setMinutes(minutes);
then.setSeconds(seconds);
var timeout = (then.getTime() - now.getTime());
setTimeout(function() { window.location.reload(true); }, timeout);
}
次にあなたがrefreshAt()
関数を呼び出すスクリプトタグを追加することができます。
refreshAt(15,35,0); //Will refresh the page at 3:35pm
あなたはこのような分と秒を持つ例を手伝ってもらえますか? 'refreshAt(35,0);' – davidb
基本的には、ページがアクセスされたときに、アクセス時間と、ページをリロードする時間の間残っているどのくらいの時間を計算し、使用しているメタリフレッシュヘッダに時間が残っています。明らかに、これはCGIスクリプトやWebアプリケーション、あるいはSSI(サーバーサイドインクルード)で行う必要があります。静的なHTMLファイルがあれば動作しません。
また、Javascriptを使用することもできますが、クライアントでJavascriptが無効になっていると動作しません。
** @ David:**サーバーサイドでの問題は、タイムゾーンが異なり、 tは常にクライアントのtzに関する情報を持っています。 –
それは必要ではないかもしれません。営業担当者は、クライアントのタイムゾーンまたはサーバーのタイムゾーンで、指定した時間にページをリロードするかどうかについては言いませんでした。 –
基本的には、ページを何分か更新することができるJavaScriptコードが多数ありますが、時間を更新するように編集することもできます。このような:
//enter refresh time in "minutes:seconds" Minutes: 0 to Whatever
//Seconds should range from 0 to 59
var limit = "0:30";
if (document.images) {
var parselimit = limit.split(":");
parselimit = parselimit[0] * 60 + parselimit[1] * 1;
}
var beginrefresh = function() {
if (!document.images) return if (parselimit == 1) window.location.reload()
else {
parselimit -= 1;
curmin = Math.floor(parselimit/60);
cursec = parselimit % 60;
if (curmin != 0) curtime = curmin + " minutes and " + cursec + " seconds left until page refresh!";
else curtime = cursec + " seconds left until page refresh!";
window.status = curtime;
setTimeout("beginrefresh()", 1000);
}
}
window.onload = beginrefresh;
(今ちょうどあなたがそれをリフレッシュしたい分と秒を計算し、例えばなどの正午、毎日それが今正午た場合:
var limit = "1440:00";
今、あなたは除いて、このコードを使用することができますそのほとんどはサーバ時間では動作しません。あなたが私たちに提供した情報で、私たちは本当に何もできません。あなたの質問を編集して、サーバの時間などでタイムアウトさせたい場合は教えてください。
私はこのページを似たような質問で見つけ、それをhacいくつかの人にとっては、より具体的な回答を得ることができます。このプロジェクトでは、グローバルな関心のあるライブイベントが始まると、ページをリフレッシュして、ユーザーのページに埋め込まれたプレーヤーをアクティブにしました(狭いユースケース - 私は知っています。それ)。
上記の回答の1つの課題は、特定の日時にページが更新されたことを確認したいため、私たちにとって問題だったタイムゾーンの変換を処理する方法でした。これを行うために、私はターゲット日付と今日の日付のUTCバージョンを取得し、それらをGMTに変換してからAndrewのタイムアウト関数をその2つの差に設定しました。
var target = new Date("January 28, 2011 13:25:00");
timeOffset = target.getTimezoneOffset() * 60000;
targetTime = target.getTime();
targetUTC = targetTime + timeOffset;
var today = new Date();
todayTime = today.getTime();
todayUTC = todayTime + timeOffset;
refreshTime = (targetUTC - todayUTC);
if (refreshTime > 1) {
setTimeout(function() { window.location.reload(true); }, refreshTime);
}
これを使用して、20秒ごとにページを更新します。
<META HTTP-EQUIV="refresh" CONTENT="20">
もう少しコンテキストが「リロード」されていますか、どのように/どこ/どのようなWebサーバーですか? – nos
これ以上の情報が必要です。実際の質問から始まります。 –
私はそれをもっと明確にするために質問を書き直しました。うまくいけば私はエドウィンの意図が正しいと思っています。 –