2009-06-30 6 views
32

लोड हो रहा है धूमकेतु, या अजाक्स लांग पुल तकनीक का उपयोग करते हैं - एक iframe आमतौर पर किया जाता है। और जब वह iframe लंबे कनेक्शन के करीब आने का इंतजार कर रहा है, तो ब्राउज़र अपने थ्रोबर (प्रगति/लोडिंग सूचक) को कताई कर रहा है।ब्राउज़र बंद करो "कयामत की throbber" जबकि धूमकेतु/सर्वर धक्का आइफ्रेम

कुछ वेबसाइटों, उदाहरण के etherpad.com के लिए, इसे रोकने के बनाने के लिए कामयाब रहे।

वे इसे कैसे करते हैं?

+0

वहाँ कई लदान सलाखों, आप किस की बात कर रहे हैं, है यह ब्राउज़र विशिष्ट, या ओएस का हिस्सा है? –

+0

मैं लोडिंग बार को अक्षम करना चाहता हूं, जिसे आप अपने ब्राउज़र में देखते हैं (आमतौर पर शीर्ष-दाएं कोने या पता बार में)। – Evgeny

उत्तर

17

एक दिन और इन्टरनेट के हिम्मत में एक रात के लिए खुदाई, यहाँ के बाद मैं क्या लेकर आए हैं:

  1. सर्वर भेजा घटनाओं - बहुत शांत है, वर्तमान में ओपेरा में ही काम करता है, लेकिन हो सकता है एचटीएमएल 5 का हिस्सा बनें और अन्य ब्राउज़र इसे कभी-कभी समर्थन दे सकते हैं। "Application/x-डोम घटना धारा" जो सर्वरग्राहक डोम में घटनाओं सक्रिय कर सकते हैं की सामग्री प्रकार के साथ एक नए तत्व टैग जोड़ता है। और जहां तक ​​मैं समझता हूं, इसे प्रगति संकेतक नहीं दिखाना चाहिए। यह एक मानक का एक मसौदा मसौदा भी है, और पूरे आईफ्रेम धूमकेतु की तरह एक हैक नहीं है।

  2. एक्सएमएलएचटीपीआरक्वेट - फ़ायरफ़ॉक्स और सफारी में, लेकिन आईई में नहीं, इसका उपयोग लंबे समय तक खींचने वाले पेज लोडिंग के लिए किया जा सकता है जो टुकड़े को संभालने में सक्षम बनाता है क्योंकि वे प्रत्येक तैयारस्टेट चेंज इवेंट पर दिखाई देते हैं। प्रगति सूचक * नहीं दिखाएगा। - नीचे

  3. ActiveXObject ("htmlfile") - वर्तमान विंडो स्कोप के बाहर एक पृष्ठ/विंडो बनाने के लिए IE में उपयोग किया जा सकता है। इससे प्रगति संकेतक दूर हो जाता है! लोड किया गया आईफ्रेम एक अदृश्य ब्राउज़र में होगा।

अधिक के बारे में सर्वर-भेजा-घटनाओं: * http://meteorserver.org/browser-techniques/

:

और अन्य दो तकनीकों के बारे में अधिक (भी समस्या बेहतर बताते हैं) प्रत्येक तकनीक के बारे में और भी गहराई से, और अधिक तकनीकें:

+12

विधि (2), एक्सएचआर का उपयोग करते समय, पेज लोड होने के बाद इसे लागू करने की आवश्यकता होती है। उदाहरण के लिए setTimeout() का उपयोग कर। यदि पृष्ठ थ्रोबबर को कताई समाप्त करने से पहले शुरू होता है, तो एक्सएचआर लोड करते समय यह कताई जारी रखेगा - और एक "ईएससी" इसे रोक सकता है, इसलिए यह बुरा है। – Evgeny

+1

उस टिप्पणी के लिए धन्यवाद Evgeny। मैं अपने पृष्ठ के खिलाफ हफ्तों के लिए अपने सिर पर टक्कर लगी हूं। मतदान से पहले कुछ सेकंड टाइमआउट जोड़ना मेरे पेज थ्रॉबर मुद्दे को ठीक करता है। – Mnebuerquo

+0

@Evgeny दुर्भाग्य से टाइमआउट समाधान क्रोम में काम नहीं करता है, यह अभी भी मुझे एक लोडिंग सूचक (हालांकि फ़ायरफ़ॉक्स में काम करता है) देता है। कोई संकेत? – Jules

1

शायद ज़रुरत है कि आप कुछ उदाहरण की आवश्यकता हो सकती है, इस आदमी फ़ायरफ़ॉक्स समस्या को हल करने के लिए एक समाधान दिया। http://www.shanison.com/?p=237

3

मेरे लिए, AJAX अनुरोध पर सेटटाइम चलाने से सबकुछ हल हो गया। जब मैंने दस्तावेज़ से अनुरोध किया था। पहले से, मुझे "विनाश का थ्रोबबर" मिला। लेकिन सेटटाइमआउट के साथ ऐसा नहीं होता है। (यह फिक्स क्रोम के लिए भी काम करता है)।

0

मैं एक ही समस्या थी, और समाधान छिपा iframe के बजाय अजाक्स इस्तेमाल किया गया।तो बजाय पेज में कहीं आइफ्रेम पैदा करने की:

$("#chat .msg_list").prepend('<iframe id="hidden" src="chatFrame?id=$userId" frameborder="0" height="0" width="100%"></iframe>'); 

मैं jQuery ajax कॉल के लिए इस्तेमाल किया कुछ div में आइफ्रेम सामग्री लोड करने के लिए:

$('#chat #chat_comet').load('chatFrame?id=$userId'); 
+0

स्वीकृत उत्तर पहले ही बताता है कि AJAX का उपयोग कैसे करें। – Evgeny

+0

हां, लेकिन यह पहली बार मेरे लिए इतना स्पष्ट नहीं था इसलिए मैंने एक सरल उत्तर लिखा। –

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