2012-10-17 8 views
10

बनाम क्या इस कोड ब्लॉक के बीच अंतर है:XMLHttpRequest.addEventListener XMLHttpRequest.upload.addEventListener

var xhr = new XMLHttpRequest(); 
xhr.upload.addEventListener("progress", uploadProgress, false); 
xhr.addEventListener("load", uploadComplete, false); 
xhr.addEventListener("error", uploadFailed, false); 
xhr.addEventListener("abort", uploadCanceled, false); 

xhr.open("POST", "upload_url"); 
xhr.send(some_form_data); 

और इस:

var xhr = new XMLHttpRequest(); 
xhr.upload.addEventListener("progress", uploadProgress, false); 
xhr.upload.addEventListener("load", uploadComplete, false); 
xhr.upload.addEventListener("error", uploadFailed, false); 
xhr.upload.addEventListener("abort", uploadCanceled, false); 

xhr.open("POST", "upload_url"); 
xhr.send(some_form_data); 

मैं ब्लॉग्स और अन्य अतः में दोनों कार्यान्वयन देखा है पदों, लेकिन कोई भी बताता है कि वे एक दूसरे पर क्यों उपयोग करते हैं। इस बिंदु पर मुझे केवल एक ही अंतर मिल सकता है कि उत्तरार्द्ध डिफ़ॉल्ट एंड्रॉइड ब्राउज़र पर काम नहीं करता है, जबकि पूर्व बस सबकुछ पर काम करता है।

+0

मुझे लगता है कि 'xhr.upload' मूल रूप से अपलोड की जा रही फ़ाइलों की ऊपरी स्थिति को ट्रैक करने के लिए उपयोग किया जाता है अन्यथा पहली विधि का उपयोग करना हमेशा बेहतर होता है। – Amareswar

उत्तर

8

XMLHttpRequest के बारे में w3c विनिर्देश के अनुसार। http://www.w3.org/TR/XMLHttpRequest/#the-upload-attribute

जैसा कि पहले संकेत दिया गया था, प्रत्येक XMLHttpRequest ऑब्जेक्ट में XMLHttpRequestUpload ऑब्जेक्ट संबंधित है।

दोनों डाउनलोड और अपलोड स्थानांतरण के लिए प्रगति घटनाएं मौजूद हैं। उपरोक्त नमूने में दिखाए गए अनुसार, डाउनलोड ईवेंट को XMLHttpRequest ऑब्जेक्ट पर ही निकाल दिया जाता है। अपलोड घटनाओं को XMLHttpRequest.upload ऑब्जेक्ट पर निकाल दिया गया है

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

  • कोई संबंधित समस्या नहीं^_^