मैं धूमकेतु प्रोग्रामिंग के लिए एक ढांचा विकसित करने वाला हूं, और मैं वेब सॉकेट, या सर्वर-प्रेषित घटनाओं का उपयोग नहीं कर सकता (क्योंकि ब्राउज़र समर्थन वास्तव में बेकार है)। इसलिए, मुझे HTTP कनेक्शन को जिंदा रखने की आवश्यकता है, और ग्राहक को वापस खंडित डेटा भेजना होगा।लाइटस्ट्रीमर के पीछे जादू क्या है?
हालांकि, समस्याओं के लिए खुद को दिखाने के रूप में आप काम में हो:
- XMLHttpRequest का उपयोग करते हुए इस तथ्य है कि आईई आप
xhr.responseText
नहीं देता है, जबकिxhr.readyState
3. - एक है की वजह से संभव नहीं है, छुपा
iframe
उपयोगी नहीं हो सकता है, क्योंकि जब मैं क्लाइंट को डेटा भेजता हूं तो ब्राउजर लोडर दिखाता है। - मैंने प्रत्येक बार फ़ंक्शन निष्पादन आदेश भेजने, क्लाइंट को एक जावास्क्रिप्ट फ़ाइल भेजने की कोशिश की, लेकिन ब्राउज़र पूरी तरह से लोड होने तक जावास्क्रिप्ट निष्पादित नहीं करेगा।
हालांकि, जब मैं Lightstreamer demo page को देखो, मैं देख रहा हूँ भेजता है कि एक जावास्क्रिप्ट वापस ग्राहक थोड़ा-थोड़ा करके और प्रत्येक चरण में फ़ाइल, यह फ़ंक्शन की कॉल भेजता है और उस समारोह बस मार डाला जाता है (मैं यह कर सकते हैं यह हिस्सा मत करो)। ऐसा लगता है कि लाइटस्ट्रीमर AJAX का उपयोग करता है, क्योंकि अनुरोध केवल फ़ायरबग के कंसोल टैब में दिखाई देता है, लेकिन यह आईई में भी आकर्षण की तरह काम करता है।
मैंने उनके अनुरोध पर सेट किए गए प्रत्येक HTTP शीर्षलेख फ़ील्ड का उपयोग करने का प्रयास किया, और नतीजा नहीं। मैंने HTTP प्राप्त करने के बजाय HTTP पोस्ट का उपयोग करने का भी प्रयास किया, लेकिन अभी भी कोई परिणाम नहीं मिला।
मैं लगभग कैसे धूमकेतु, को लागू करने पर 20 से अधिक लेख पढ़ा है, लेकिन कोई भी of'em मैं समस्याओं को हल करने के लिए प्रकट:
- यह क्रॉस-ब्राउज़र कैसे बनाने के लिए?
- सर्वर से नया डेटा कब पहुंचाया जाता है (मुझे किस घटना में शामिल होना चाहिए) अधिसूचित कैसे किया जाए?
- मेरा पृष्ठ उपयोगकर्ता को पूरी तरह से लोड करने के तरीके के रूप में कैसे दिखाई देता है (इसे कैसे कार्यान्वित किया जाए, ताकि ब्राउजर लोडिंग गतिविधि नहीं दिखाता)?
क्या कोई मदद कर सकता है? मुझे लगता है कि एक बहुत छोटी टिप या चाल होनी चाहिए जिसे मैं सभी अवधारणाओं को एक साथ चिपकाने के लिए यहां नहीं जानता हूं। क्या किसी को पता है कि इन समस्याओं को दूर करने के लिए लाइटस्ट्रीमर क्या करता है?
हाँ, मैंने कोशिश की, लेकिन यह केवल तभी काम करता है जब आप एमआईएमई प्रकार * टेक्स्ट/एचटीएमएल * पर सेट करते हैं। दूसरे शब्दों में, आपको एक और HTML दस्तावेज़ का अनुरोध करना चाहिए। यदि आप ** आवेदन/जावास्क्रिप्ट ** या ** एप्लिकेशन/एक्स-जावास्क्रिप्ट ** या ** टेक्स्ट/जावास्क्रिप्ट ** पर प्रतिक्रिया सेट करते हैं तो यह काम नहीं करेगा। इसके अलावा यह मेरी समस्याओं का समाधान नहीं करता है। मैं जावास्क्रिप्ट स्निपेट वाली HTML फ़ाइल का अनुरोध करने के लिए XMLHttpRequest का उपयोग कर सकता हूं। हालांकि, यह आईई में काम नहीं करता है। मैं 'iframe' का उपयोग कर सकता हूं, लेकिन यह लोडर दिखाता है। लाइटस्ट्रीमर हर जगह काम करता है, और लोडर चिह्न नहीं दिखाता है। –
कृपया ध्यान दें कि यदि मैं कभी-कभी लोड होने वाली HTML फ़ाइल प्राप्त करने के लिए 'XMLHttpRequest' का उपयोग करता हूं जिसमें' 'जावास्क्रिप्ट स्निपेट, उन्हें निष्पादित नहीं किया जाएगा। मेरा मतलब है, ब्राउजर जावास्क्रिप्ट टैग के अंदर जावास्क्रिप्ट कोड निष्पादित करता है, लेकिन केवल सामान्य अनुरोधों में, AJAX अनुरोध नहीं। –