jQuery Ajax快速连续中止和新请求

use*_*224 7 apache jquery jquery-mobile

我有一个移动应用程序,它制作一个

JqXHR = $.ajax({
    url: 'url',
    data: null,
    async: true,
    cache: false,
    dataType: 'json',
    type: 'GET',
    crossDomain: true,
    timeout: 63000,
    success: function(data, textStatus, jqXHR) {},
    error: function(jqXHR, textStatus, errorThrown) {}
});
Run Code Online (Sandbox Code Playgroud)

请求.它等待63秒(PHP后端CAN运行约62秒),以便在另一端进行用户交互.现在,如果同时我决定中止这个请求,那么我打电话JqXHR.abort().在错误处理程序中,我已经处理/区分真正的错误和中止,这是有效的.在中止之后,我想向服务器发送另一个API调用来绑定松散的端点并确保记录我的取消请求.

而且存在问题.甚至尽管我abort()的第一个请求,PHP脚本仍然在服务器,这将不会是一个问题,如果它也执行了第二个请求,这将使它停下来,死在运行().但它没有发生.第二个请求直到第一个完成才会发生.

有任何想法吗?

jQuery 1.8.2,jQuery Mobile 1.2.0,PhoneGap 2.0.0和2.1.0,Apache 2,Linux,PHP 5.3

use*_*224 1

我似乎遇到了旧的 PHP 会话与 AJAX 请求问题。事实上,我的老板通过谷歌搜索一些我从未想到过的表达方式发现了这个问题。我在后端使用 Zend 框架,它会自动启动一个会话命名空间,因此在我的 API 控制器的 preDispatch() 方法中我必须放入 @session_write_close(); 线条,就像施了魔法一样,它就像一个魅力。

感谢阿伦的快速回复,非常感谢。

因此,简而言之:如果您使用 Zend Framework 或 session_autostart 或其他启动会话的方式,它们将不会与并行 AJAX 请求一起运行。