有没有办法执行即发即弃AJAX请求
Is there a way to perform fire-and-forget AJAX request?
我正在开发一个web应用程序。当程序切换频道时,它会向具有旧频道的服务器发送一个"关闭"AJAX请求。当服务器响应时,应用程序只向服务器发送一个"打开"请求,以打开一个新频道。大多数时候,这种关闭等待-完成-打开等待-完成循环运行得足够快,但在特殊通道的情况下,关闭需要超过5秒的时间,这是不可接受的。
我为这些通道的"关闭"请求设置了一个短的超时,它会返回,但新的"打开"请求会挂起,直到服务器响应旧的"关闭"请求,所以超时只是解决了问题。
我已经为长关闭设置了一个setTimeout(),所以当我的程序调用"关闭"时,它会被延迟,新的"打开"会在它之前执行,但它也只是抛出了问题,当setTimeout)命中时,会有一个"后台"的长请求,它会占用浏览器的ajax请求池,如果运气好的话,会导致伪ajax挂在随机的ajax请求上。
该应用程序对"关闭"请求的结果不感兴趣,因此即使失败也可以将其删除。
执行这样的即发即弃AJAX请求的最佳实践是什么?
(我在Linux上使用Chromium浏览器,但该应用程序也应该在Firefox上运行。)
您可以使用servlet 3.0异步功能。您可以立即提交关闭请求的响应,并启动新线程以进行进一步的服务器处理。您可以参考下面的链接,了解更多关于相同的信息。http://www.javaworld.com/article/2077995/java-concurrency/asynchronous-processing-support-in-servlet-3-0.html
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成