AJAX don';不要等待响应


AJAX don't wait for response

我有一个网页,在页面加载时有一个简单的AJAX请求:

$(document).ready(function() {
    $.get("ajax.php?do=something", function(response) {
        alert('response');
    });
});

这个请求在我的本地测试机器上大约需要15秒。ajax.php确实使用session_start(),但在之后立即调用session_write_close()(几乎是在之后-它在任何密集处理完成之前调用):

<?php
session_start();
if(empty($_GET['do']))
    die("!Invalid request.");
$do = $_GET['do'];
if($do=="something-else")
{
}
else if($do=="something")
{
    session_write_close();
    $customerId = $_SESSION['customerId'];
    //processing done here
}
?>

问题是,一旦加载该页面,AJAX就会被启动,但如果用户点击链接转到另一个页面,浏览器会等待15秒,然后重定向。

我想让用户转到其他页面而不必等待,或者如果他们留下来,我希望他们看到响应。

编辑只是为了进一步澄清。每个页面的顶部都有一个session_start(),包括用户试图访问的页面

我正在使用ajax.php中的会话,并编辑了原始问题以反映这一点。

被点击的链接在哪里?链接指向哪里?它如何与您发布的AJAX相结合?据我所见,AJAX如预期的那样工作。你没有对会话做任何事情,所以你最好不要启动或关闭任何会话。

我会把这作为一个评论发布,但它不会让我,所以我会把它作为一个答案,直到你能给出更多的细节。