Tôi hiện đang có mã này để tạo ra một Worker Web:Sử dụng đối tượng chuyển nhượng từ một Worker Web
w = new Worker("webwork.js");
w.onmessage = function(event) { alert(event.data); }
Và sau đó mã webwork.js
cho Worker Web:
self.onmessage = function(event) {
//var ss=r; //Causes error because of undefined
var ss="";
for(var currProp in event) {
ss+=("event."+currProp+"="+event[currProp]+"\n");
}
postMessage(ss);
}
Bây giờ tôi muốn chuyển 128-Megabyte ArrayBuffer
với mã này:
var r = new ArrayBuffer(1048576*128);
w.postMessage(0, [r]);
Bây giờ tôi được cho là đã chuyển biến số r
, làm cách nào để truy cập biến đó từ chính Công nhân Web. Tôi đã thử event.r
, chỉ r
, self.r
và những thứ khác như cố gắng thêm đối số chức năng thứ hai cho mảng ArrayBuffers
, nhưng không có gì hoạt động.
Tôi làm cách nào để truy cập (các) biến được chuyển từ Công nhân Web?
Sẽ không nó có trong ' event.data'? – bfavaretto
Không có vẻ như vậy. Nếu tôi sử dụng "w.postMessage (0, [r]);", thì "event.data" là 0, nhưng tôi không biết mảng ArrayBuffers nằm ở đâu, thậm chí bằng cách kiểm tra tất cả các thuộc tính của sự kiện. Tôi không thể tìm thấy nó. –