小编MrS*_*nts的帖子

在Knockout JS中加载延迟

我正在尝试通过Knockout JS从外部源加载和解析json数据到表中.到目前为止,通过以下代码已经成功:

    // Snippet
    var self = this;
    self.notices = ko.observableArray([]);
    self.currentTab = ko.observable(5);
    ko.computed(function() {
        $.getJSON('http://json.source.here.com/tab/'+ko.toJS(self.currentTab), function(threads) {
            if (threads !== null) {
                self.notices(threads);
            } else {
                self.notices([]);
            }
        });
    }, self.notices);
Run Code Online (Sandbox Code Playgroud)

当用户单击某个选项卡时,它会根据所选的选项卡值(self.currentTab)将json数据(论坛线程)以行的形式(self.notices)加载到表中.

一切都按预期工作但是,我注意到在浏览其他没有上述绑定的页面时,json仍在加载($ .getJSON被触发).我担心这可能对我的网站的性能产生一些不利影响,因为它加载了json源,即使它不需要.

编辑:我通过谷歌Chrome的开发者控制台想出了这个.

我目前在JavaScript文件中有我的视图模型,每个其他页面也在使用它.它包含所有页面的绑定.

我的问题是,如何在特定页面上加载json数据或仅在绑定存在时加载 - 延迟加载?最好,我想将所有绑定保存在一个JavaScript文件中,我不想将它们分开并按页面加载它们.

javascript jquery json lazy-loading knockout.js

9
推荐指数
1
解决办法
8326
查看次数

标签 统计

javascript ×1

jquery ×1

json ×1

knockout.js ×1

lazy-loading ×1