Backbone 网保存模型超时

g9icjywg  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(136)

我试图保存模型,需要像40秒的后端处理,也等待保存的响应,但在我的应用程序有一些全局超时,捕捉这一点,并显示一般的错误消息。
因此,问题是我可以为我的model.save()方法设置某种超时吗?
我试过用

$.ajaxSetup({
    timeout: 30000
});

在模型内部初始化方法,并尝试在保存方法内部传递超时,如下所示

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

但没有成功

koaltpgm

koaltpgm1#

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

这就是我要做的(如果可能的话,也可能修复缓慢的后端)
希望能有所帮助!

相关问题