您建议使用哪个接口或组件来显示并行异步调用的状态?(语言对我来说不是那么重要,只是模式,我可以用javascript重写相同的类/接口......)
我从 REST 服务加载模型数据,我想在真实内容之前显示挂起的标签,如果出现问题则显示错误消息......我认为这是一个常见问题,并且必须有一个已经编写的组件,或最佳实践,或为此的模式。你知道类似的事情吗?
这是一个意大利面条代码——Backbone.syncParallel 还不是一个现有的函数——它有两个主要状态:updateForm,更新。在每个主要状态之前,页面都会显示“请稍候!” 标签,并且由于错误,页面会显示错误消息。我觉得这种代码重用性很高,所以我想我可以创建一个自动显示当前状态的容器,但是我无法决定这个组件应该有什么样的界面......
var content = new Backbone.View({
appendTo: "body"
});
content.render();
var role = new Role({id: id});
var userSet = new UserSet();
Backbone.syncParallel({
models: [role, userSet],
run: function (){
role.fetch();
userSet.fetch();
},
listeners: {
request: function (){
content.$el.html("Please wait!");
},
error: function (){
content.$el.html("Sorry, we could not reach the data on the server!");
},
sync: function (){
var form = new RoleUpdateForm({
model: role,
userSet: userSet
});
form.on("submit", function (){
content.$el.html("Please wait!");
role.save({
error: function (){
content.$el.html("Sorry, we could not save your modifications, please try again!");
content.$el.append(new Backbone.UI.Button({
content: "Back to the form.",
onClick: function (){
content.$el.html(form.$el);
}
}));
},
success: function (){
content.$el.html("You data is saved successfully! Please wait until we redirect you to the page of the saved role!");
setTimeout(function (){
controller.read(role.id);
}, 2000);
}
});
}, this);
form.render();
content.$el.html(form.$el);
}
}
});