Ajax响应需要时间,状态为503

时间:2010-06-16 15:23:49

标签: javascript ajax jsp

大家好,我有一个html页面,点击按钮ajax请求被发送到服务器,请求调用一个运行oracle过程的jsp页面。过程运行逻辑并将其放在临时表中。一旦过程完成,通过从tmp表中选择值将值返回给客户端。因为回应太晚了。客户端未收到数据。

溶液: 我尝试使用ajax调用在单独的线程中运行该过程。当过程完成时,设置全局标志以指示生成数据。如果响应为500,则在10000毫秒后由超时功能调用第二个ajax调用。第二个调用检查全局标志,如果为true则从表中读取并发送响应。如果没有再次在客户端设置超时。这个解决方案还不够成熟。 ,因为该程序可能需要很长时间才能作出回应。

请让我知道这个问题的一个很好的解决方案?

1 个答案:

答案 0 :(得分:1)

这是经典的“报价比较网站”模式。

您需要更具体地提出要求,例如......

首先 - 您使用AJAX发送长时间运行进程的初始请求,然后返回“RequestId”。

第二 - 您使用您的请求ID调用“检查状态”服务并获得状态。如果你得到“工作”,你会暂停一下并重新检查。如果你得到“完整”,你就进入第三阶段。

第三 - 您使用您的请求ID调用“获取结果”服务,并立即获得预先准备好的结果。

您需要在第二步中添加一些尝试 - 所以如果您等待10分钟,则放弃并向用户道歉。