2016-09-06 19 views
5

सभी उदाहरण मैंने देखा है, वे इसक्यों SharedWorker onConnect घटना एक बंदरगाहों सरणी है?

onconnect = function(e) { 
    var port = e.ports[0]; 

    port.onmessage = function(e) { 
     var workerResult = 'Result: ' + (e.data[0] * e.data[1]); 
     port.postMessage(workerResult); 
    } 

    port.start(); 
} 

के लिए इसी तरह कर रहे हैं वहाँ एक उदाहरण जहां बंदरगाहों सरणी कभी एक से अधिक तत्व होगा है? क्रोम का उपयोग करते हुए: // SharedWorker पर निरीक्षण और e बाहर मुद्रण, मैं

MessageEvent

कैसे कई मामलों को साझा करने SharedWorker, जहां लंबाई हमेशा 1. है उत्पन्न हुए हैं की परवाह किए बिना मिल क्यों यह सिर्फ एक नहीं है एक सरणी के बजाय MessageEvent? इसके लिए एक सरणी होने के लिए क्या उपयोग केस है?

उत्तर

2

कारण यह है कि यह MessageEvent इंटरफ़ेस है जो कभी कभी कई बंदरगाहों की एक सरणी के साथ भेजा जा सकता है पुनः उपयोग कर लेता है। बस इतना ही।

+0

और वह है क्या मामलों हो सकता है? websockets का उपयोग कर? मैं बहुत उत्सुक हूँ। –

+0

का उपयोग करते हुए 'window.postMessage' आप' transfer' तर्क में बंदरगाहों की एक सरणी में पारित कर सकते हैं। देखें https://html.spec.whatwg.org/multipage/comms.html#introduction-12 https://html.spec.whatwg.org/multipage/comms.html#ports-as-the-basis- की-एक वस्तु क्षमता मॉडल-ऑन-द वेब – zcorpan

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