可观察到的性能
knockout observableArray performance
如何一次性将所有值添加到observableArray
中?在我的例子中,在循环中添加值非常缓慢。这里有一个简单的例子。jsfiddle
var myArray = ko.observableArray([]);
var valuesToInsert = [1,2,3];
myArray.push.apply(myArray, valuesToInsert);
因为你要清除整个可观察数组,你可以这样做:
var viewModel = {
name: "base",
addingValue:new ko.observable(),
someArr: new ko.observableArray(["123","432","sdafasd","xrere"]),
add: function()
{
this.someArr.push(this.addingValue());
},
updateSomeArr:function()
{
var temp = [];
for(var i=0;i<5;i++)
{
temp.push("555565");
}
this.someArr(temp);
}
}
已经有一个选定的答案,但我认为以下内容会有所帮助。你可以通过执行可观察数组来禁用观察行为,以获得底层数组实现:
var underlyingArray = viewModel.someArr();
你可以添加项目到underlyingArray
而不触发someArr
事件。添加完项后,调用:
viewModel.someArr.valueHasMutated();
这将导致事件触发,通知所有依赖于viewModel.someArr()的可观察对象。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- knockoutjs可观察数组
- 使用正则表达式评估电子邮件地址时出现性能问题
- React:按键的性能提升
- 在Three.js中导出网格会提高性能吗
- 多次发射多个可观察器的问题
- 在javascript中搜索项目列表的性能
- 未激发路由的控制器属性上的观察者
- 为什么在许多浏览器中drawImage()的性能略好于createPattern()
- JavaScript数组优化以提高性能
- React+Redux性能优化与组件ShouldUpdate
- 无法在关闭弹出窗口时传递可观察的数据
- 在循环中附加事件处理程序时出现浏览器性能问题
- JavaScript-===vs===运算符性能
- firefox插件:退出不工作的应用程序观察器
- Knockout.js性能-有多少可观察性
- 淘汰赛可观察量和性能
- 可观察到的性能
- 在性能问题中观察文件更改