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

Simultaneous hang asynchronous and synchronous requests on Google Chrome

我的系统环境是:

http://127.0.0.1/csp/projectname/page.csp 的页面启动了一个异步请求,紧接着它启动了一个同步请求。结果,两个查询都执行了 4 分钟(状态为 "pending"),浏览器挂起。 4 分钟后同步请求 returns 一个响应 - 一个简短的 html 页面,包含以下内容

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

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

异步请求收到失败状态并导致错误 net :: ERR_INCOMPLETE_CHUNKED_ENCODING。同事打开同一个页面没有问题,他的浏览器是 Chrome on Windows 8.1,处理器是 Intel Core i5。我们发现他先执行了同步请求,然后是异步请求。尝试不同的诊断方法,在我看来似乎是在OS和Chrome的情况下,但也许我错了。在 Firefox 中,页面打开没有问题。 异步请求的应答 returns 一个 1 兆字节的数据。同步请求的应答returns 约400字节。 还有一种假设是安装浏览器Opera后出现的问题,但我对此存有很大的疑虑。

首先,你应该知道,每个带有Cache'的请求,一个session只运行一个进程。因此,一个页面中的多个请求,无论是否异步,都将以任何方式作为同步请求。接下来,错误 - ERR_INCOMPLETE_CHUNKED_ENCODING 可能与 CSP 连接 - mod 设置,尝试使用此参数。

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