2011-12-02 12 views
5

अब, मैं समझता हूं कि पृष्ठ को बंद करने में यह बुरा अभ्यास है, और इस तरह की चीजों को संभालने के बेहतर तरीके हैं, लेकिन केवल भविष्य के संदर्भ के लिए, पृष्ठ बंद होने में देरी करने का कोई तरीका है? कुछविलंब पृष्ठ जावास्क्रिप्ट के साथ बंद है?

window.onunload = unload(); 

function unload() 
{ 
setTimeout("self.close()", 1000) 
} 

धन्यवाद!

+0

क्या आपने इसे आजमाया है? –

+2

@GlennSlaven, क्या कोशिश की? उपरोक्त फ़ंक्शन काम नहीं करता है (बेशक: पी), और मैं पूछ रहा था कि क्या ऐसा करने का ब्राउज़र-अनुमोदित तरीका था, जैसे कि एक फ़ंक्शन जो इसे केवल एक सेकंड के लिए देरी करेगा, और कम नहीं, या कुछ नहीं – MatthewSot

उत्तर

8

तुम सच में की जरूरत है (यानी अर्द्ध हैक्स का सहारा करने के लिए तैयार।) एक पुष्टिकरण संवाद, आदि बिना दिखाए पेज बंद करने में देरी करने के लिए, आप की तरह निम्नलिखित कुछ कर सकते हैं:

function delay(ms) { 
    var start = +new Date; 
    while ((+new Date - start) < ms); 
} 

// start image loading (I assume you need this for tracking?) 
delay(150); 

चेतावनियां हैं स्पष्ट: यह हमेशा काम नहीं करेगा और आप बहुत लंबे समय तक देरी नहीं कर सकते हैं। ऐसा कहा जा रहा है, यदि आप वास्तव में इसमें रुचि रखते हैं, तो आप शायद 95% से अधिक परिणाम प्राप्त कर सकते हैं (वास्तव में सर्वर प्रतिक्रिया समय पर निर्भर करता है)।

+2

लेकिन यह पृष्ठ को लॉक करेगा और आपके सीपीयू को स्पाइक करेगा। यह देरी कर सकता है, लेकिन आप उस अवधि के दौरान कुछ भी नहीं कर सकते हैं। इस हैक को शायद इतना उपयोगी नहीं बनाना। –

+1

@ स्क्वीगी यह लगभग उतना ही बुरा नहीं है जितना लगता है :) यदि आप 150-250 के आसपास टाइमआउट रखते हैं तो आपको वास्तव में "लॉक" नहीं दिखाई देगा। और वैसे, यह ऐसा कुछ नहीं है जिसे मैंने अभी आविष्कार किया है, इसका उपयोग विज़िटर ट्रैकर्स द्वारा उत्पादन में किया जा रहा है। – deviousdodo

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