2013-10-11 26 views
6

मेरे पास Ajax request क्लाइंट पेज को अपडेट करने के लिए है यदि कोई नया डेटा सर्वर पर उपलब्ध है। मैंने कनेक्शन 'keep-Alive' सेट किया है, इसलिए मैं अद्यतन डेटा की जांच करने के लिए हर बार नया Ajax कॉल नहीं कर रहा हूं। मेरे पास कॉलबैक है जो पृष्ठ को अपडेट करता है यदि कोई रिकॉर्ड उपलब्ध है।अजाक्स अनुरोध हेडर जीवित रहें

नीचे मेरा Ajax Request है।

xmlRequest.open("post", url, true); 
xmlRequest.setRequestHeader("Connection", "Keep-Alive"); 
xmlRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); 
xmlRequest.send(some data); 

यह ठीक काम करता है, लेकिन यदि उपयोगकर्ता ब्राउज़र को रीफ्रेश करता है, तो अजाक्स को सर्वर से अद्यतन डेटा नहीं मिलता है।

मेरी अवधारणा इस बात पर बहुत स्पष्ट नहीं है कि कनेक्शन प्रकार "keep-Alive" कैसे काम करता है। लेकिन ऐसा लगता है जब उपयोगकर्ता ब्राउज़र को रीफ्रेश करता है तो अजाक्स कनेक्शन सर्वर से खो जाता है इसलिए अजाक्स ने सूची बंद कर दी।

मुझे पता है कि जब भी ब्राउज़र पृष्ठ को रीफ्रेश करता है तो मैं इसे नया कॉल करके ठीक कर सकता हूं। लेकिन यहां मैं समझना चाहता हूं कि यह वास्तव में Ajax keep-Alive ब्राउज़र रीफ्रेश होने पर कनेक्शन खो देता है।

उत्तर

0

जावास्क्रिप्ट वातावरण सामान्य रूप से पेज रीसेट पर साफ़ हो जाता है, लेकिन आप रीफ्रेश में बने रहने और अपने xmlRequest चर को बनाए रखने के लिए window.localStorage का उपयोग कर सकते हैं। फिर कनेक्शन को दोबारा शुरू करना आवश्यक है या नहीं, यह देखने के लिए आपको क्लाइंट + सर्वर पक्ष का परीक्षण करने में सक्षम होना चाहिए।

+0

स्टोरेज (स्थानीय और वैश्विक) सर्वर-हस्तांतरणीय नहीं हैं। कुकी तंत्र का उपयोग करके डिबगिंग को आसान बनाएं, 'document.cookie' स्ट्रिंग को सर्वर पर भी स्थानांतरित कर दिया जाएगा, यदि आप सर्वर-साइड पर टीसीपी-डंपिंग कर रहे हैं तो आप एक पूर्ण सैनिटी टेस्ट कर सकते हैं, साथ ही आप इसे अपने आप देख सकते हैं ब्राउज़र .. –

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