在大型JSON对象上使用worker.postMessage时,HTML 5 Web worker非常慢.我正在尝试弄清楚如何将JSON对象传输给Web工作者 - 使用Chrome中的'Transferable Objects'类型,以提高速度.
这就是我所指的并且似乎应该加快这一点:http: //updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast
我很难找到一个很好的例子(我不相信我想使用ArrayBuffer).任何帮助,将不胜感激.
我想象的是这样的:
worker = new Worker('workers.js');
var large_json = {};
for(var i = 0; i < 20000; ++i){
large_json[i] = i;
large_json["test" + i] = "string";
};
//How to make this call to use Transfer Objects? Takes approx 2 seconds to serialize this for me currently.
worker.webkitPostMessage(large_json);
Run Code Online (Sandbox Code Playgroud) Angular 1.5可以进行多重遮挡。
值得注意的是,将动态数量的项目转换为指令并在以后的时间(例如,在链接/编译中)声明这些转换的名称和位置会很有用。
为了进一步说明,我希望能够执行以下操作:
//Example usage of directive
<multi-slot-transclude-example>
<transclude1>TEST1</div>
<transclude2>TEST2</div>
<transclude3>TEST3</div>
<transclude4>TEST4</div>
.... dynamic number of items ...
</multi-slot-transclude-example>
//Example of directive that dynamically transcludes multiple items
angular.module("multiSlotTranscludeExample", [])
.directive("directiveName", function(){
return {
restrict: 'E',
transclude: {
't1': '?transclude1',
't2': '?transclude2',
//I'd like this list to be able to be defined non-statically (e.g. in link)
},
template: '<div ng-repeat="n in transcludedElementList">'
+ '<div ng-transclude="t{{n}"></div>'
+ '</div>'
};
})
Run Code Online (Sandbox Code Playgroud)
请注意,在实现多重转换的指令声明中,我必须具有在声明时将要转换的项目数量的先验知识。
有没有一种方法可以在链接中(或使用解决方法)执行类似的操作,而该功能将保持与当前包含的功能相同?
javascript angularjs angularjs-directive angularjs-ng-transclude