2010-07-01 7 views
15

इस कोड का उपयोग करना:प्रोटोटाइप जेएस लाइब्रेरी का उपयोग कर अनुरोध को निरस्त/रद्द कैसे करें?

var pendingRequest = new Ajax.Request(myUrl, { 
       method: 'post', 
       postBody: soapMsg, 
       contentType: "text/xml", 
       onSuccess: function(transport) { 
        doSomething(transport); 
       }, 
       onFailure: function(t) { 
        OnAjaxFailure(t); 
       }, 
       onException: function(req,exception) { 
        OnAjaxException(req, exception);   
       } 

      }); 

मैं अनुरोध कैसे रद्द और डेटा को छोड़ सकते हैं, या असफल रहने कि, मैं कैसे अनुरोध की पहचान कर सकता है (एक नाम का उपयोग/GUID/जो कुछ भी) मेरी onSuccess विधि के अंदर इतना है कि मैं बता सकते हैं कि कौन सा अनुरोध पूरा हो रहा है?

मैं एक array.push (pendingRequest) करने का सोच रहा था लंबित अनुरोध

का ट्रैक रखने के मैं उपयोगकर्ता, उनके अनुरोध को बीच में इनपुट मानों को बदलने और फिर से जमा करने की अनुमति देना चाहते।

कभी-कभी मूल अनुरोध नए अनुरोध के बाद समाप्त होता है और मैं "पुराने" डेटा को "पुराने" डेटा के साथ बदल रहा हूं। (खोज परिणाम उदाहरण के लिए, पहली क्वेरी और 5 सेकंड में पर 50,000 रिकॉर्ड वापसी)

धन्यवाद,

उत्तर

20

आप एक्सएचआर के abort उपयोग कर सकते हैं।

एक्सएचआर-वस्तु pendingRequest.transport में संग्रहीत किया जाता है, तो

pendingRequest.transport.abort() 

का उपयोग कर अनुरोध को रद्द होगा।

+0

सही, धन्यवाद –

2

मैं इस आलेख को पुनः प्राप्त करता हूं: http://blog.pothoven.net/2007/12/aborting-ajax-requests-for-prototypejs.html मेरे लिए काम करता है।

+1

कि एक oooooooooooooold लिंक – Nasaralla

+0

प्रोटोटाइप पुराना है। लिंक काम नहीं कर रहा है? या लिंक में उपलब्ध विधि काम नहीं कर रहा है? – llamerr

+0

लिंक काम कर रहा है। मैं साल पहले इस तरीके का उपयोग कर रहा था और यह अच्छा काम कर रहा था। मुझे उम्मीद है कि यह अभी भी है। – Mat

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