我正在尝试保存需要40秒才能在后端处理的模型 并等待保存的响应,但是在我的应用中,全局超时会捕获该超时并显示一般错误消息。
所以问题是我可以为我的model.save()
方法设置超时时间吗?
我尝试使用
$.ajaxSetup({
timeout: 30000
});
在模型内部初始化方法中,还尝试在保存方法中传递超时
myModel.save({
timeout: 30000
},...
但是没有用
答案 0 :(得分:0)
40seconds很多,可能是您的后端出现了问题。
我不确定更改全局超时是否是一个好主意,您必须为每个浏览器都这样做,但这可能不是最佳选择。
我要做的是在您的应用程序中保留一个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
这就是我要这样做的方式(如果可能的话,还可以修复缓慢的后端)
希望有帮助!