मुझे एक और एक करने से पहले सभी लंबित पेजमेथोड कॉल को रद्द करने की आवश्यकता है, लेकिन मुझे "अनुरोधों पर एक हैंडल होने में परेशानी हो रही है। मुझे उम्मीद थी कि मैं निम्नलिखित की तरह कुछ कर सकता था:
var pm = PageMethods.Test(123);
var ex = pm.get_executor();
ex.abort();
हालाँकि, PageMethods कॉल अनुरोध के लिए एक हैंडल वापस नहीं करता है, और यदि आप कॉल के लिए गतिशील रूप से उत्पन्न जावास्क्रिप्ट को देखते हैं ...
PageMethods.Test= function(id,onSuccess,onFailed,userContext) {
PageMethods._staticInstance.Test(id,onSuccess,onFailed,userContext); }
... आप देख सकते हैं कि कोई भी नहीं है return
बयान, यहाँ समस्या है। यदि मैं निम्नलिखित के साथ उस घोषणा को ओवरराइड करता हूं:
PageMethods.Test = function(id, onSuccess, onFailed, userContext) {
return PageMethods._staticInstance.Test(id, onSuccess, onFailed, userContext); }
मैं निम्नलिखित कर सकता हूँ:
var pm = PageMethods.Test(123, function()
{
alert("completed");
}, function(err)
{
alert("failed");
});
var ex = pm.get_executor();
ex.abort();
लेकिन मैं प्रत्येक पृष्ठ विधि को ओवरराइड नहीं करना चाहता जैसा कि मैंने ऊपर किया है, और मैं वास्तव में जो करना चाहता हूं वह कुछ ऐसा है PageMethods.cancelAllPending()
लेकिन उस टीएन का अस्तित्व नहीं है, कम से कम अगर प्रत्येक पेजमेथोड्स कॉल को अनुरोध वापस करना था तो मैं खुद उन पर नज़र रख सकता था और उन्हें रद्द कर सकता था, लेकिन यह नहीं है!
और नहीं, मैं नहीं कर रहा हूँ, और jQuery (या किसी अन्य जावास्क्रिप्ट पुस्तकालय!) का उपयोग नहीं कर सकता।
उत्तर:
उत्तर № 1 के लिए 1इस लिंक को देखें
यह वास्तव में आपकी मदद करेगा http://randomactsofcoding.blogspot.in/2008/06/look-at-canceling-page-method-call.html