2009-08-08 9 views
8

क्या जावास्क्रिप्ट के भीतर जांचने का कोई तरीका है यदि XMLHttpRequest ऑब्जेक्ट W3C Progress Events का समर्थन करता है? मेरा मतलब यह है कि अगर कुछ हैंडलर फ़ंक्शन के लिए अधिभार, प्रगति, ऑनबॉर्ट, आतंक, आदि गुणों को सेट करना होगा, तो उन कार्यों को उन घटनाओं कहा जाता है, जैसा वर्णन किया गया है।जावास्क्रिप्ट में कैसे जांचें यदि XMLHttpRequest ऑब्जेक्ट W3C प्रोग्रेस ईवेंट का समर्थन करता है?

अतिरिक्त (बोनस) प्रश्न: क्या उन घटनाओं का समर्थन करने के लिए XMLHttpRequest (उदा। कुछ टाइमर का उपयोग करके) बढ़ाने का कोई तरीका है?

Sidenote: मैं पहली बार के बारे में W3C प्रगति घटनाक्रम XMLHttpRequest here

उत्तर

9

के संदर्भ में आप इसे इस तरह से कर रही है का प्रयास किया है पाया है?

try { 
    var xhr = new XMLHttpRequest(); 

    if ('onprogress' in xhr) { 
     // Browser supports W3C Progress Events 
    } else { 
     // Browser does not support W3C Progress Events 
    } 
} catch (e) { 
    // Browser is IE6 or 7 
} 

मैं फ़ायरफ़ॉक्स & IE8 में यह परीक्षण किया गया। फ़ायरफ़ॉक्स दिखाता है कि यह इसका समर्थन करता है। आईई का कहना है कि इसका डब्ल्यू 3 सी प्रगति कार्यक्रमों के लिए कोई समर्थन नहीं है।

+0

'if (xhr.onload! == अपरिभाषित) {...} 'के लिए वैकल्पिक' अगर ('xload में' अधिभार 'का उपयोग करना है {...}' –

+1

' प्रगति 'के लिए परीक्षण करना बेहतर है xhr, क्योंकि कुछ ब्राउज़र्स (ओपेरा) ऑनलोड/आतंक लागू करता है, लेकिन प्रगति नहीं करता है, हालांकि ओपेरा प्रगति को सक्रिय नहीं करता है, लेकिन इसे इसके साथ अनुकरण किया जा सकता है: setInterval ({if (xhr.readyState === 3 && xhr.responseText! = = अंतिम) xhr.onprogress();}, 250); – 4esn0k

+0

@ 4esn0k मैंने अपना जवाब अपडेट कर दिया है। मुझे पता नहीं था कि ओपेरा का एक अलग कार्यान्वयन था। धन्यवाद। –

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