2011-06-30 13 views
5

मैं कुछ विचारों तक पहुंचने के लिए कॉच डीबी और PHP-on-Couch का उपयोग करके एक साधारण PHP एप्लिकेशन पर काम कर रहा हूं, और यह बहुत अच्छा काम कर रहा है। मेरा अगला कदम डेटाबेस से डेटा के साथ अग्रभाग को अद्यतन करने के लिए अजाक्स को पेश करना है।कॉच डीबी रीयल-टाइम अजाक्स पुश अपडेट

मुझे समझ में आता है कि आप आसानी से डेटाबेस पर किए गए किसी भी बदलाव का पता लगाने के लिए _changes अधिसूचनाओं का उपयोग कर सकते हैं। इसलिए, यह index.html के मामले में बदलाव (लंबी मतदान के माध्यम से) की निगरानी है, जो पृष्ठ सामग्री को अद्यतन करने के लिए loadView.php को कॉल करता है।

सबसे पहले, मुझे आशा है कि इसके बाद के संस्करण इसके बारे में जाने का सही तरीका है ...

दूसरे, जब index.html के लिए ब्राउज़, पेज पूरी तरह से कभी लोड (पेज लोड कभी नहीं बार लगता है पूरा करता है)। जब कोई परिवर्तन किया जाता है, तो फ़ायरबग अपेक्षित परिणामों को दिखाता है, लेकिन बाद में कोई भी परिवर्तन नहीं होता है। इस समय, पृष्ठ ने अनंत लोडिंग को रोक दिया है।

अब तक, मैं अजाक्स कॉल करने के लिए jQuery का उपयोग कर रहा ...

$.getJSON('http://localhost:5984/db?callback=?', function(db) { 
    console.log(db.update_seq); 
    $.getJSON('http://localhost:5984/db/_changes?since='+db.update_seq+'&feed=continuous&callback=?', function(changes) { 
     console.log(changes); 
    }); 
}); 

कोई भी विचार यहाँ क्या हो रहा जा सकता है?

+2

** के बारे में ** पहले, आप सही हैं! – JasonSmith

+0

हाहा, कमाल! बस किसी और की नाक के नीचे इसे पास करने के लिए हमेशा अच्छा है जो मुझसे बेहतर जानता है! – crawf

उत्तर

5

मुझे विश्वास है कि उत्तर काफी सरल है।

लांगपॉल क्वेरी AJAX है, केवल एक बार जवाब देने की गारंटी है, जैसे HTML या छवि लाने। परिवर्तन के लिए इंतजार करते समय प्रतिक्रिया देने में थोड़ा समय लग सकता है; या अगर परिवर्तन पहले ही हो चुके हैं तो यह तुरंत जवाब दे सकता है।

निरंतर क्वेरी COMET है। यह HTTP उत्तर कभी खत्म नहीं करेगा, यह कनेक्शन हमेशा के लिए खुला रहेगा (त्रुटियों, क्रैश, इत्यादि को छोड़कर)। प्रत्येक बार जब कोई परिवर्तन होता है, ज़ूम, सोफे इसे आपको भेजता है।

तो दूसरे शब्दों में, feed=longpoll से feed=continuous को बदलने का प्रयास करें और देखें कि क्या यह हल करता है या नहीं।

पृष्ठभूमि के लिए, मैं change notifications पर कॉच डीबी परिभाषा गाइड और निश्चित रूप से उत्कृष्ट कोचबेस एकल सर्वर changes API documentation पर सुझाव देता हूं।

+1

जो सही समझ में आता है, मुझे इससे बेहतर पता होना चाहिए! – crawf

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