2012-10-27 31 views
7

मैं इस टिप्पणी प्रणाली जहां टिप्पणी पोस्ट और पेज को ताज़ा करने के बिना अद्यतन किया जा सकता बनाने के लिए योजना बना रहे हैं (आप यूट्यूब पर देख सकते हैं)वास्तविक समय ajax टिप्पणी

टिप्पणी पोस्ट करना समझ में आता है (php पृष्ठ पर पोस्ट जावास्क्रिप्ट और चलाने से है सर्वर को साइड क्वेरी पर आयात करने और एचटीएमएल में लाने की तुलना में इसे आयात करने के लिए एसक्यूएल क्वेरी)

अद्यतन करना वह हिस्सा है जिसे मैं समझ नहीं पा रहा हूं। मैं निश्चित अंतराल पर पृष्ठ को स्वचालित रूप से रीफ्रेश कैसे कर सकता हूं और टिप्पणियां जोड़ सकता हूं? क्या यह एक गड़बड़ नहीं होगा जब एकाधिक उपयोगकर्ता एक ही समय में टिप्पणी करने का प्रयास करते हैं?

मैं सोच रहा था कि अगर किसी को भी एक अच्छा तरीका सिफारिश कर सकते हैं (सिर्फ सलाह के शब्द की तरह) इस लक्ष्य को हासिल है और मुझे कुछ समय

उत्तर

2

सबसे आम तरीका जावास्क्रिप्ट में setTimeout या setInterval कॉल करने के लिए हर 5 मतदान पर है को बचाने के लिए 25 सेकंड असल में, आप जावास्क्रिप्ट पक्ष पर प्राप्त अंतिम टिप्पणी के विचार को संग्रहीत करते हैं, फिर आप एक फ़ंक्शन को कॉल करते हैं जो इस आईडी को दूरस्थ सर्वर पर भेजता है। यदि इस आईडी से नए संदेश हैं, तो आप उन्हें वापस एक्सएमएल या जेएसओएन के माध्यम से भेजते हैं (आमतौर पर जेसन जावास्क्रिप्ट पक्ष से निपटने में आसान होता है, खासकर यदि आप jQuery जैसे ढांचे का उपयोग करते हैं)।

+0

धन्यवाद, मैं कोशिश कर सकता हूं – Alexim

+2

JSON.parse' का उपयोग करके JSON को आसानी से jQuery के बिना संभाला जा सकता है। –

+0

@ फ़ेलिक्सक्लिंग मैंने इसके विपरीत कुछ भी नहीं कहा :)। – ajacian81

1

आप "लंबी मतदान" का उपयोग कर सकते हैं। असल में यह एक ऐसी तकनीक है जिसमें आप एक अजाक्स कनेक्शन खोलते हैं और सर्वर तब तक बंद नहीं होता जब तक कि उसे भेजने के लिए कुछ प्रतिक्रिया न हो। इस प्रतिक्रिया को प्राप्त करने पर ग्राहक एक नया कनेक्शन अनुरोध करता है और प्रतिक्रिया के लिए फिर से प्रतीक्षा करता है।

आप एक ट्यूटोरियल देख सकते हैं: Simple Long Polling Example with JavaScript and jQuery

1

एक और वास्तव में अच्छा तरीका सब्सक्राइब/प्रकाशित सेवा का उपयोग करेगा।

मैं सूचनाओं के लिए इस समय PubNub उपयोग कर रहा हूँ, ect टिप्पणियाँ ..

0

मैं एक बार एक दोष के साथ एक सरल तकनीक (कोई इस्तेमाल किया टाइमर, कोई कुल रीफ्रेश) है कि यह केवल नई टिप्पणी से पता चलता इस्तेमाल किया, लेकिन नहीं मौजूदा प्रदर्शित टिप्पणियों में किए गए अन्य लोगों द्वारा संपादित और हटाएं। सावधान रहें कि यदि आप "विस्तृत/संक्षिप्त/अधिक देखें" टिप्पणियों की अनुमति देते हैं तो संपूर्ण टिप्पणियां पैनल को रीफ्रेश करना असुरक्षित हो सकता है। मेरी सरल तकनीक है (i) प्रदर्शित अंतिम टिप्पणी के इंडेक्स/प्राथमिककुंजी को स्टोर करने के लिए एक छिपी हुई इनपुट तत्व (ii) कई विशिष्ट रूप से पहचाने गए divs को मौजूदा प्रदर्शित टिप्पणियों और AJAX रीफ्रेश या HTML डोम मैनिपुलेशन को पकड़ने के लिए केवल क्रियाएं होती हैं जब क्रियाएं की जाती हैं इस पर (iii) एक दृश्य को अधिक टिप्पणियां देखने के लिए एक div जिससे कि बटन केवल तभी दिखाई देगा जब देखने के लिए और अधिक टिप्पणियां हों।

इसलिए, जब भी कोई नई टिप्पणी पोस्ट की जाती है, "एक बटन के साथ अधिक टिप्पणियां पैनल देखें" को रीफ्रेश किया जाएगा [एक्स + (# हाल ही में नई टिप्पणियां) + (# आपकी नई टिप्पणी)] टिप्पणियां। बटन पर क्लिक करने पर, यह "और अधिक टिप्पणियां देखें" बटन के साथ 3 और नई टिप्पणियां प्रदर्शित करेगा।

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