我使用knockout.js渲染我的看法,我是從服務器獲取數據,並且這樣的結合..knockoutJS導致停止腳本錯誤嵌套的foreach
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel, $("#macro-wrapper")[0]);
我的看法......我修剪的幾個位了......但結合是相同的......
<div data-bind="foreach: Data">
<h3>
<a href="#" data-bind="text: Site.Name"></a>
</h3>
<div id="">
<div data-bind="foreach: Comments">
<div class="">
<div class="" data-bind="click: $root.showContent">
<a ></a>
</div>
<span>
<a data-bind="attr: { 'href': Url }, text: SomeText"></a>
</span>
<span class="">
<span class="" data-bind="text: ADate"></span>
</span>
</div>
</div>
</div>
的數據包含對象的數組,並在每個這些對象的另一個數組... 有大約有500件需要被渲染。
雖然我一直在測試我沒有遇到任何問題,但是在部署時,不管是慢速電腦我都不知道,但他們得到了「這個腳本正在緩慢停止?」信息。 如果您點擊「否」幾次,它會呈現。
什麼是在淘汰賽中處理大數據集的技術?理想情況下,我希望渲染完成異步,並讓用戶在忙於工作時繼續使用它們的東西...
屬性實際上不需要可觀察 - 這是1次渲染...沒有什麼會改變。我使用映射API來簡化操作。
更新: 好的,所以我做了一個改變,不再使用映射API - 頁面正在加載,但仍然緩慢......任何想法? 更改:var viewModel = data;
我有一些客戶抱怨我的基於淘汰賽的網站在safari 4中較老的mac上運行緩慢。還沒有弄清楚。您的用戶使用哪些瀏覽器? – 2012-04-24 13:32:08
鉻,IE9和8. IE8的特殊問題 – SteveCl 2012-04-24 13:33:49