gpt4 book ai didi

knockout.js - 生成 knockout.js 模板时浏览器没有响应

转载 作者:行者123 更新时间:2023-12-04 03:13:21 26 4
gpt4 key购买 nike

我希望我的浏览器可以立即访问,而不必等待加载模板。目前,当我提供一个大数组(在本例中为 1000 个元素)时,情况并非如此。我试过使用 External Template Engine ,但这只会导致模板显示“正在加载 ...”,并且浏览器在加载完成之前不会响应。

为了说明,一个简短的例子:

JS:

function User(firstname, lastname) {
this.firstname = ko.observable(firstname);
this.lastname = ko.observable(lastname);
}

function UserViewModel() {
this.allUsers = ko.observableArray([
new User("John", "Doe"),
new User("John", "Doe"),
new User("John", "Doe"),
// 1000 elements ...
new User("John", "Doe")
]);
}

ko.applyBindings(new UserViewModel());

HTML:

<html>
<head>
...
</head>

<body>

<ul data-bind="template: { name: 'my-template', foreach: allUsers() }"></ul>

<script type="text/html" id="my-template">
<li>
<h1 data-bind="text: firstname()"></h1>
<h2 data-bind="text: lastname()"></h2>
</li>
</script>

</body>
</html>

所以基本上我想要的是在呈现模板时可以访问浏览器,并且一旦它们准备就绪,它们就应该被可视化。我之前提到的外部模板引擎不能满足我的需求。

最佳答案

您可能想尝试这种方法:

Show progress bar while knockout is rendering the view

如果您查看链接的 jsFiddle (http://jsfiddle.net/rniemeyer/fdSUU/),您将看到正在使用的方法。

您基本上是从单独数组中的数据开始,然后通过 setTimeout 调用将它们加载到数组中,比如一次加载 50 项。这会在数据加载时保持浏览器处于事件状态。

关于knockout.js - 生成 knockout.js 模板时浏览器没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12935697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com