2012-02-13 15 views
13

क्या यह पता लगाने का कोई आसान तरीका है कि ब्राउज़र विंडो में XMLHttpRequest सक्रिय है या नहीं? या कितने सक्रिय हैं? अर्थात। क्या यह पता लगाने का कोई तरीका है कि क्या मेरी ब्राउज़र विंडो में कोई AJAX कॉल सक्रिय है या नहीं?ब्राउज़र में HTTP अनुरोध कब खुले हैं या नहीं?

प्रश्न का विस्तार: जावास्क्रिप्ट का उपयोग करना एक तरीका है जो मैं देख सकता हूं कि क्या कोई XMLHttpRequests खुला है? जैसे "window.XMLisActive()" या ऐसा कुछ?

समाधान: समाप्त XMLHttpRequest https://gist.github.com/1820380 के लिए एक आवरण लेखन

+1

सक्रिय से आपका क्या मतलब है? क्या आप इस प्रश्न को थोड़ा और बढ़ा सकते हैं, जैसे आप इसे पूरा करने की कोशिश कैसे कर रहे हैं, आपने किसने कोशिश की है आदि? – TheBoyan

उत्तर

22

वहाँ जे एस से एक खुला संबंध का पता लगाने के लिए एक रास्ता है जब तक आप XmlHttpRequest (या बंदर यह पैच) कि खोला कनेक्शन का ट्रैक रखता है के लिए एक आवरण लिखना नहीं है।

यहाँ kidcapital के बंदर पैच यकीन नहीं करता है, तो यह सही है, है, लेकिन यह एक अच्छी शुरुआत

(function() { 
    var oldOpen = XMLHttpRequest.prototype.open; 
    window.openHTTPs = 0; 
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
     window.openHTTPs++; 
     this.addEventListener("readystatechange", function() { 
      if(this.readyState == 4) { 
      window.openHTTPs--; 
      } 
     }, false); 
     oldOpen.call(this, method, url, async, user, pass); 
    } 
    })(); 
+1

इसके लिए एक गिस्ट लिखना समाप्त हो गया जो https: // gist.github.com/1820380 – kidcapital

+1

@किड कैपिटल: मैंने यहां कुछ बहुत ही पोस्ट किया है, लेकिन इसे समाप्त करने में समय नहीं लगा, इसलिए मैंने इसे हटा दिया। क्या आपने इसे 30 सेकंड के लिए देखा था जिसे इसे पोस्ट किया गया था? यह लगभग मेरे जैसा था जैसा दिखता है;) किसी भी मामले में, नेटवर्क त्रुटियों के लिए परीक्षण करना सुनिश्चित करें, और 'abort()' को –

+0

कहा जा रहा है, मैंने इसे नहीं देखा। नेटवर्क त्रुटियां अभी भी प्रतिक्रिया कोड 4 को ट्रिगर कर देगी? सेलेनियम परीक्षणों के लिए ब्राउजर में इस स्क्रिप्ट को इंजेक्शन देने के बाद abort() – kidcapital

3

आप उस के लिए FireBug उपयोग कर सकते हैं।

enter image description here

+4

सोच रहा है कि क्या मैं इसे जावास्क्रिप्ट में भी एक्सेस कर सकता हूं। – kidcapital

+0

या अन्य ब्राउज़र विकास के वातावरण के किसी भी। http://stackoverflow.com/questions/4445759/is-there-a-single-html5-javascript-and-css-debugger/4445828#4445828 –

1

है jQuery का उपयोग करके आप ट्रैक रख सकते हैं अगर वहाँ वैश्विक घटना संचालकों के साथ खुले अनुरोध कर रहे हैं: .ajaxStart() और .ajaxComplete()

AJAXStart पर एक वैश्विक चर सेट और AJAX पूर्ण पर रीसेट करें नौकरी करना चाहिए।

+0

यह मानता है कि आप jquery .ajax का उपयोग कर रहे हैं। क्या होगा यदि आपके पास कोई jQuery ibrary नहीं है? – kidcapital

+2

यही मेरा जवाब है, यदि आपके पास 'XmlHttpRequest' के लिए एक रैपर है, तो यह करना आसान है (यदि आपका रैपर इसका समर्थन करता है)। यदि आपके पास jQuery नहीं है, तो आप या तो इसका उपयोग शुरू कर सकते हैं, या अपना खुद का रैपर लिख सकते हैं। –

+0

सही जोड़ी है AJAXSend और AJAX पूर्ण (दस्तावेज़ों की जांच करें) –

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