【发布时间】:2017-03-07 22:51:58
【问题描述】:
我要问一个哀伤的问题。我知道http通常是请求响应。可以请求完成吗?
我们有一种情况,我们希望将 ajax 调用发送到一个服务器,然后在完成后将表单发布到另一台服务器。我们不能在不协调它们的情况下同时发送它们,因为帖子会使浏览器导航到另一台服务器,并且我们失去了上下文。
当我目前正在做的是做第一个ajax调用,然后在它的回调中,我正在做document['order-form'].submit()。我的老板指出,如果 ajax 调用有一段时间没有完成,用户会看到他的浏览器没有进展,即使它仍然响应。他希望我在 ajax 调用上设置一个合理的超时时间。
但实际上,ajax 调用是一个“不错但没有必要”的东西。如果我们可以发送它并忘记它,我的老板会同样高兴。
我在为 Google 制定合适的查询时遇到了很多麻烦。 “像 UDP 一样使用 HTTP”不起作用。很多事情都行不通。是时候问问人类了。
【问题讨论】:
-
正如你所说“我的老板指出,如果有一段时间没有完成 ajax 调用,用户会看到他的浏览器没有进展,即使它仍然是响应式的。”所以为什么不添加一个 UI 元素——比如可以向用户显示的进度条或旋转轮——浏览器在等待 AJAX 返回时仍在酝酿一些东西。同样据我了解 HTTP,因为它基于客户端 - 服务器范式是基于请求 - 响应并且是无状态的 (tools.ietf.org/html/rfc7230#section-2.1)
-
表达“我正在工作”的 UI 元素肯定会有所改进。我还是宁愿发送一个 udp 数据包然后忘记它。
标签: ajax http xmlhttprequest