在Google Chrome上同时挂起异步和同步请求

时间:2016-02-02 10:43:22

标签: javascript ajax apache google-chrome intersystems-cache

我的系统环境是:

  • 英特尔酷睿i3-2310M 2.10 GHz
  • Windows 7 Home Basic
  • Google Chrome或Opera
  • Apache on 127.0.0.1 with CSP module(适用于InterSystemsCaché®数据库) 系统)

http://127.0.0.1/csp/projectname/page.csp处的页面启动异步请求,此后立即启动同步请求。结果,两个查询都执行了4分钟(状态为“待处理”),并且浏览器挂起。 4分钟后,同步请求返回一个响应 - 一个简短的html页面,其中包含以下内容

<HTML><HEAD>
<TITLE>Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>

在此服务器上找不到请求的网址/csp/projectname/dynamicpage.csp。

异步请求收到失败状态并导致错误 net :: ERR_INCOMPLETE_CHUNKED_ENCODING 。同事打开同一页面没有任何问题,他的浏览器是Windows 8.1上的Chrome,处理器是Intel Core i5。我们发现他已经执行了第一个同步请求,然后异步。尝试不同的诊断方法,在我看来,操作系统和Chrome的情况,但也许我错了。在Firefox中,页面打开没有任何问题。 异步请求的答案返回1兆字节的数据。同步请求的答案返回大约400个字节。 仍有假设安装浏览器Opera后出现问题,但我对此有很大疑问。

2 个答案:

答案 0 :(得分:1)

首先,您应该知道,每个请求都使用Cache&#39;,其中一个会话仅使用一个进程进行操作。因此,一个页面中的多个请求(异步与否)将以任何方式作为同步请求。接下来,错误 - Save可能会与CSP-mod设置相关联,请尝试使用此参数。

enter image description here

答案 1 :(得分:1)

服务器上的默认行为是通过锁定会话来强制执行单个用户会话的请求的顺序处理。因此,如果需要很长时间处理的第一个请求不会手动解锁会话,则第二个请求将排在第一个请求之后,直到完成为止。您可能需要在长时间运行的服务器代码中调用%session.Unlock()