首页 > 解决方案 > 主干保存模型超时

问题描述

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

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

我尝试使用

$.ajaxSetup({
    timeout: 30000
});

在模型初始化方法中,也尝试在保存方法中像这样传递超时

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

但它没有用

标签: javascriptbackbone.js

解决方案


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

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

希望能帮助到你 !


推荐阅读