我正在学习可转移对象:http ://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast
它们看起来非常棒,我想在我的扩展中使用它们来加速将数据从 iframe 内部传递到 iframe 外部。
我已经让这个示例代码工作了,但它使用了一个 Web Worker:
var s = document.createElement("script");
s.type = "text/js-worker";
s.innerHTML = 'console.log("i ran!");';
document.body.appendChild(s);
var blob = new Blob(Array.prototype.map.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) {
return oScript.textContent;
}), { type: "text/javascript" });
var worker = new Worker(window.URL.createObjectURL(blob));
var arrayBuffer = new ArrayBuffer(1);
worker.onmessage = function (oEvent) {
console.log("Called back by the worker!\n");
};
console.log("worker:", worker);
worker.postMessage(arrayBuffer, [arrayBuffer]);
if (arrayBuffer.byteLength) {
console.error("nope");
} else {
console.log("it worked");
}
有没有人有任何关于支持的信息,或支持/crbug 使用以下端口的时间表:
var port = chrome.runtime.connect({
name: 'youTubeIFrameConnectRequest'
});
//port.postMessage -- transferrable object.
我没有看到任何对它的支持或任何关于支持它的东西,但这似乎真的很奇怪!