淘汰赛映射初始化的最佳代码
Optimal code for Knockout Mapping Initialization
这是我第一次使用Knockout Mapping插件直接从服务器的JSON创建我的视图模型。初始数据集来自服务器,然后每10秒轮询一次更改。这段代码可以工作,但我觉得它不是很DRY。
我到处寻找更好的例子,但没有任何运气。如何避免在两个不同的地方调用getJSON ?
在我的customer-scripts.js文件中:
function CustomerRefresher(id) {
var viewModel;
$.getJSON('/ApiCustomer/Get/' + id, function (data) {
viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
setTimeout(refresh, 10000);
});
var refresh = function () {
$.getJSON('/ApiCustomer/Get/' + id, function (data) {
ko.mapping.fromJS(data, {}, viewModel);
});
setTimeout(refresh, 10000);
}
}
在我的。cshtml文件:
$(function () {
CustomerRefresher(@Model.Id);
});
function CustomerRefresher(id){
var refresh = function(){
$.getJSON('/ApiCustomer/Get/' + encodeURIComponent(id), function(data){
if (typeof CustomerRefresher.viewModel !== 'undefined'){
ko.mapping.fromJS(data, {}, CustomerRefresher.viewModel);
}else{
CustomerRefresher.viewModel = ko.mapping.fromJS(data);
ko.applyBindings(CustomerRefresher.viewModel);
}
setTimeout(refresh, 10000);
});
};
refresh();
}
之类的?(可以使用函数本身来"缓存"视图模型)另外,提供了示例。
而且,顺带一提,这可能更适合codereview.SE.
相关文章:
- AJAX调用运行C代码的最佳实践
- 使用相同代码管理多个HTML的最佳方式
- 在我的代码中管理大量硬编码数据的最佳方法
- 在Titanium中分离平台特定代码的最佳方式
- 通用化用于切换禁用属性的代码的最佳方法
- 找出哪些 JavaScript 代码更改页面中特定 html 内容的最佳方法是什么?
- 分离AngularJs控制器代码的最佳方法
- 如何在函数中注入/覆盖代码?最佳实践
- 在应用程序框架中处理异步 Javascript 代码的最佳实践
- 使用承诺编写可读代码的最佳方法是什么?
- 适用于 ngRoute、ng-view 和代码复制的最佳实践
- 缩小Javascript代码和css代码的最佳应用程序
- 最佳实践:如何从JavaScript调用Objective-C代码
- 链接多个.然后,一些没有异步代码的函数.最佳实践
- 在Phonegap应用程序中组织Javascript代码的最佳方式
- Jquery-Carasol构建完成,希望获得关于最佳实践/整理我的代码的建议
- 单元测试Mootools代码的最佳解决方案
- 管理Javascript代码的最佳方法是什么?
- 使用AngularJS组织代码的最佳方式是什么?
- 淘汰赛映射初始化的最佳代码