骨干网保存模型超时

时间:2019-06-27 10:46:53

标签: javascript backbone.js

我正在尝试保存需要40秒才能在后端处理的模型 并等待保存的响应,但是在我的应用中,全局超时会捕获该超时并显示一般错误消息。

所以问题是我可以为我的model.save()方法设置超时时间吗?

我尝试使用

$.ajaxSetup({
    timeout: 30000
});

在模型内部初始化方法中,还尝试在保存方法中传递超时

myModel.save({  
    timeout: 30000  
},... 

但是没有用

1 个答案:

答案 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

这就是我要这样做的方式(如果可能的话,还可以修复缓慢的后端)

希望有帮助!