2017-12-11 51 views
6

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

कोई भी चालाक विचार यह कैसे ठीक करें?

अद्यतन: पृष्ठ cache-control:no-cache, private पर सेट है।

+0

शायद डेट इनपुट रीफ्रेश करने के लिए टाइमआउट सेट करना आपकी समस्या हल करता है। मुझे यकीन नहीं है कि क्रोम किसी पृष्ठ पुनर्स्थापना के बाद ईवेंट श्रोताओं को जीवित रखता है या नहीं। –

+0

पर नहीं है DomReady ट्रिगर? हो सकता है कि आप समय भी दिखाकर इसे डीबग कर सकें ... हमेशा एक दिन का इंतजार नहीं करना पड़ेगा। – Alex

+0

क्या सर्वर सर्वर या जावास्क्रिप्ट द्वारा पॉप्युलेट किया गया है? – Alex

उत्तर

2

मैंने पृष्ठ पर एक दिनांक फ़ील्ड और एक जावास्क्रिप्ट रखा है। पृष्ठ को कैश से लोड किया जाता है। कल से फॉर्म में अभी भी तारीख है और पेज लोड पर जावास्क्रिप्ट को उसी तरह निष्पादित किया गया है। यहाँ से

<input id="form_date" name="form_date" type="hidden" value="2017-12-19 17:52:08"> 
<script> 
    // Day compare 
    Date.prototype.sameDay = function(d) { 
     return this.getFullYear() === d.getFullYear() 
      && this.getDate() === d.getDate() 
      && this.getMonth() === d.getMonth(); 
    }; 
    var x_today = new Date(); 
    var x_page_date = new Date($('#form_date').val()); 
    if (console && !x_today.sameDay(x_page_date)){ 
     console.log("Old page!"); 
     console.log('page date: ', x_page_date); 
     console.log('today: ', x_today); 
    } 
</script> 

आप पृष्ठ पुनः लोड करें या उपयोगकर्ता क्या करना है पूछ सकते: यदि मैं तिथियों की तुलना मैं पुराने पेज का पता लगा सकते।

-2

आप या तो AJAX का उपयोग कर सकते हैं या सर्वर की तारीख प्राप्त कर सकते हैं।

+0

यह वास्तव में एक उत्तर नहीं है, उत्तर खंड में टिप्पणी मत करो – Tomm

संबंधित मुद्दे