2009-08-02 16 views
10

मेरे पास एक ऐसी वेबसाइट है जिसे मैं एक निश्चित समय पर पुनः लोड करना चाहता हूं, जैसे 3:35 बजे, 5min जैसे विशिष्ट अंतराल के बाद नहीं। मैं उसको कैसे करू?एक निश्चित समय पर स्वचालित रूप से एक वेब पेज को फिर से लोड कैसे करें?

+0

थोड़ा और संदर्भ, "पुनः लोड करें" यह कैसे/कहाँ/क्या, किस तरह का वेब-सर्वर? – nos

+4

हमें इस से अधिक जानकारी की आवश्यकता होगी। एक वास्तविक सवाल से शुरू करना। –

+3

मैं इसे स्पष्ट करने के लिए प्रश्न को फिर से लिखता हूं - उम्मीद है कि मुझे एडविन का इरादा सही मिला। –

उत्तर

36

निम्नलिखित जावास्क्रिप्ट टुकड़ा आप एक निश्चित समय पर ताज़ा करने के लिए अनुमति देगा:

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 
+0

क्या आप इस उदाहरण के साथ केवल कुछ मिनट और सेकंड के लिए मदद कर सकते हैं जैसे 'रीफ्रेश करें (35,0); ' – davidb

1

असल में, जब पृष्ठ पर पहुंचने पर किया जाता है, की गणना कितना समय का उपयोग समय और समय आप पृष्ठ पुनः लोड करना चाहते हैं के बीच शेष है, और का उपयोग करें कि मेटा रिफ़्रेश शीर्षक में समय शेष। जाहिर है, इसे एक सीजीआई स्क्रिप्ट या वेब एप्लिकेशन में या संभवतः एसएसआई (सर्वर-साइड शामिल) के साथ किया जाना चाहिए; यदि आपके पास सब कुछ एक स्थिर HTML फ़ाइल है तो यह काम नहीं करेगा।

जावास्क्रिप्ट का उपयोग करने का एक और विकल्प होगा, लेकिन यदि क्लाइंट जावास्क्रिप्ट अक्षम है तो यह काम नहीं करेगा।

+1

** @ डेविड: ** सर्वर-पक्ष करने में समस्या यह है कि टाइमज़ोन भिन्न है, और आप' हमेशा ग्राहक के टीजे पर जानकारी नहीं है। –

+0

यह आवश्यक नहीं हो सकता है। ओपी ने यह नहीं कहा कि क्या वह किसी भी समय क्लाइंट के टाइमज़ोन या सर्वर के टाइमज़ोन में पृष्ठ को फिर से लोड करना चाहता था। –

5
<META HTTP-EQUIV="Refresh" CONTENT="5"> 

यह पृष्ठ को हर 5 सेकंड में पुनः लोड करने के लिए मजबूर करेगा। बस सही अंतराल की गणना करें और इसे सामग्री टैग

+4

** @ सोरेंटिस: ** सर्वर-पक्ष करने में समस्या यह है कि टाइमज़ोन भिन्न है, और आपके पास हमेशा क्लाइंट के tz पर जानकारी नहीं होती है। –

+0

आप सही हैं। मुझे लगता है कि जावास्क्रिप्ट इष्टतम समाधान है। – Sorantis

+2

प्रश्न विशिष्ट समय के बारे में है और समय के अंतराल – random

0

असल में, वहां कई जावास्क्रिप्ट कोड हैं जो पृष्ठ को कभी भी मिनट या कुछ ताज़ा कर सकते हैं, आप उन्हें घंटों में रीफ्रेश करने के लिए भी संपादित कर सकते हैं। इस तरह:

//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"; 

अब आप को छोड़कर इस कोड का उपयोग कर सकता है , उनमें से अधिकतर सर्वर समय के साथ काम नहीं करते हैं, और आपके द्वारा प्रदान की गई जानकारी के साथ, हम वास्तव में और कुछ नहीं कर सकते हैं। अपना प्रश्न संपादित करें और हमें बताएं कि क्या आप इसे सर्वर समय के साथ समयबद्ध करना चाहते हैं, या कुछ और

1

मुझे इस पृष्ठ को एक समान प्रश्न के साथ मिला और इसे एचएसी के लिए इस्तेमाल किया कुछ और विशिष्ट उत्तर का उपयोग करें जो कुछ के लिए उपयोग किया जा सकता है। इस परियोजना के लिए, हम यह सुनिश्चित करना चाहते थे कि ग्लोबल ब्याज की लाइव घटना के बाद पेज रीफ्रेश हो जाए, उपयोगकर्ता के पेज पर एम्बेड किए गए प्लेयर को सक्रिय करना (संकीर्ण उपयोग केस, मुझे पता है - दूसरों के लिए बेहतर उपयोग हो सकता है यह)।

उपरोक्त उत्तरों में एक चुनौती समय क्षेत्र रूपांतरणों से निपटने का तरीका था, जो हमारे लिए एक मुद्दा था क्योंकि हम यह सुनिश्चित करना चाहते थे कि पृष्ठ एक विशिष्ट दिन और समय पर ताज़ा हो। ऐसा करने के लिए, मैंने लक्ष्य तिथि और आज की तारीख का यूटीसी संस्करण पकड़ा, उन्हें जीएमटी में परिवर्तित कर दिया, फिर एंड्रयू के टाइमआउट फ़ंक्शन को दोनों के बीच अंतर में सेट किया।


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); 
} 
0

प्रत्येक 20 सेकंड में पृष्ठ को रीफ्रेश करने के लिए इसका उपयोग करें।

<META HTTP-EQUIV="refresh" CONTENT="20"> 
संबंधित मुद्दे