एक सर्वर अद्यतन के लिए jQuery श्रोता

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

मैं jQuery क्षेत्र में नौसिखिया हूं, क्या कोई मुझे बता सकता है कि मैं इसे कैसे प्राप्त कर सकता हूं?

0

2 उत्तर

आप $। AJAX() <�का उपयोग करके एक AJAX कॉल क्यों नहीं करते हैं , और फिर स्थगित done() में हुक करें समारोह। इस तरह, जब आपका डीबी अपडेट किया जाता है, तो आप done() फ़ंक्शन के अंदर सब कुछ संभाल सकते हैं।

उदाहरण के लिए:

$.ajax({  
    'type': 'get',
    'url': 'update_db.php'
}).done(function() {  
   //The PHP has executed and the call has returned.
   //'Ungrey' your items here...
});
1
जोड़ा
धन्यवाद, यह बहुत अच्छा काम किया!
जोड़ा लेखक kacpr, स्रोत

आप अपडेट के लिए सर्वर को regurlarly मतदान कर सकते हैं:

var job = $.Deferred();
var POLL_INTERVAL_MSEC = 5000;
var timer = setInterval( function() {
   $.ajax('status/isfinshed').done( function( response ) {
        if ( response.finished ) {
            clearInterval( timer );
            job.resolve();
        }
   });
} , POLL_INTERVAL_MSEC);

job.done( function() {
    //success code
});
0
जोड़ा