我有一个网页,在页面加载时有一个简单的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如预期的那样工作。你没有对会话做任何事情,所以你最好不要启动或关闭任何会话。
我会把这作为一个评论发布,但它不会让我,所以我会把它作为一个答案,直到你能给出更多的细节。