【发布时间】:2013-12-21 08:20:48
【问题描述】:
我想使用淘汰赛将我的 ASP.NET MVC 应用程序转换为一个。
转换我的第一个视图后,我注意到淘汰赛需要更长的时间来渲染与 MVC 相同数量的数据。这是显示列表名称的淘汰代码。
<html>
<head>
<script src="../../Assets/knockout/js/knockout-3.0.0.js" ></script>
</head>
<body>
<ul data-bind="foreach: lists, visible: lists().length > 0">
<li>
<strong data-bind="text: title" ></strong>
</li>
</ul>
<script type="text/javascript">
function List(data) {
this.title = ko.observable(data.Title);
}
function ListViewModel() {
var self = this;
self.lists = ko.observableArray([]);
$.getJSON("/home", function (json) {
var data = JSON.parse(json);
var mappedlists = $.map(data, function (item) {
return new List(item);
});
self.lists(mappedlists);
});
}
ko.applyBindings(new ListViewModel());
</script>
</body>
我确定淘汰赛不会那么慢,这里有什么我遗漏的地方
注意:为了比较,我在同一个视图(并排)上使用了两者来查看哪个首先出现
【问题讨论】:
-
在第一种情况下,页面到达时已格式化。在页面加载后第二秒下载内容并开始格式化,因此它必须更慢。
-
@Emil 谢谢,我在同一页面上检查性能是错误的。即使淘汰赛更快,它也会稍后呈现。
标签: javascript asp.net-mvc knockout.js