我的网页在页面加载时有一个简单的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中的会话,并编辑了原始问题以反映这一点。
答案 0 :(得分:0)
点击的链接在哪里?链接指向哪里以及它如何与您发布的AJAX相关联?从我看到的AJAX按预期工作。你没有对会话做任何事情,所以你可能没有任何会话开始或关闭。
我会将此作为评论发布,但它不会让我因此我将此作为答案,直到您可以提供更多详细信息。