我正在尝试保存需要40秒之类的模型才能在后端处理还要等待保存的响应,但是在我的应用程序中,有一些全局超时会抓住此问题并显示通用错误消息。
所以问题是我可以以某种方式为model.save()
方法设置超时吗?
我尝试使用
$.ajaxSetup({
timeout: 30000
});
内部模型初始化方法,并且还尝试将超时保存在保存方法中
myModel.save({
timeout: 30000
},...
但是它不起作用
40秒很多,也许是您的后端问题。
我不确定更改全局超时是一个好主意,您必须为每个浏览器做它,这可能不是最好的选择。
我要做的是在您的应用程序中保留一个ID,以进行有效载荷您尝试保存的有效载荷。
=> frontend calls saveMyPayload(payload, id)
=> frontend display loader
=> backend process payload (takes 40secondes)
然后,您可以定期致电您的后端,询问保存是否完成。
=> frontend calls isMyPayloadSavedYet(id)
=> backend answer "no" until saving is done
=> finally backend answer "yes it's saved"
=> frontend displays "saved" message
=> frontend destroy the setInvervale used for saving verification
这就是我的方式(如果可能的话,也许还可以修复慢速后端(
希望它有帮助!