2011-05-17 17 views
5

मेरे पास अपनी वेबसाइट पर एक चैट है और यह जांचने के लिए कि क्या नए संदेश हैं या नहीं, इसे मेरे सर्वर (कम से कम 2 बार प्रति सेकंड) में कई AJAX अनुरोध भेजना होगा।
क्या अनुरोधों की संख्या को कम करने और पोस्ट किए जाने के बाद ही संदेशों को पुनः लोड करने का कोई तरीका है?
मैं जानता हूँ कि सॉकेट उपयोग करने के लिए (क्योंकि मैं फ्लैश, जावा या एचटीएमएल 5 की सुविधाओं का उपयोग नहीं कर सकते हैं) कोई संभावना देखते हैं कि, लेकिन शायद वहाँ कुछ से निपटने चाल रखने HTTP 1.1 के जिंदा विकल्प है?चैट के लिए कई AJAX अनुरोधों को कैसे कम करें?

+1

सॉकेट.ओओ का उपयोग करें;) जो वेबसाइकिल उपलब्ध नहीं हैं, तो वेबैकेट्स और अजाक्स को अपमानित करता है। – Raynos

उत्तर

6

हां, ऐसा करने का एक आसान तरीका है। प्रभावी रूप से, आप जो करते हैं वह है कि आप अपने AJAX कॉल के लिए लंबे समय तक कॉलआउट बढ़ाएं (कहें, 5 मिनट)। आपका सर्वर अनुरोध प्राप्त करता है और फिर इसे रखता है, कभी-कभी नए प्रतिक्रियाओं की जांच करता है। फिर, जब एक नई प्रतिक्रिया की आवश्यकता होती है, तो यह केवल अनुरोध का जवाब देती है, और आपके ग्राहक को अपडेट प्राप्त होता है।

कोई जवाब नहीं 5 मिनट के भीतर था है, तो अपने ग्राहक बस टाइमआउट और एक नया ajax अनुरोध शुरू होता है। आपका सर्वर, अगर उसने 5 मिनट के भीतर जवाब नहीं दिया है, तो आमतौर पर कतार से बाहर निकलने के लिए आयोजित अनुरोध को समाप्त कर देता है।

प्रभावी रूप से 'सर्वर-साइड' पुशिंग।

+0

वाह, यह वास्तव में एक अच्छी तकनीक है! – tsds

+1

कोई लिंक जो आप उदाहरण Tejs के लिए प्रदान कर सकते हैं? – JClaspill

+1

कोई लिंक नहीं है, लेकिन यह आपके वेबसर्वर पसंद पर काफी आसान होना चाहिए। jQuery के AJAX हेल्पर्स लंबे समय तक सेट करना आसान बनाते हैं। – Tejs

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