【发布时间】:2012-09-02 06:51:46
【问题描述】:
我遇到了一个非常奇怪的问题,我正在尝试通过 ajax 调用获取 PHP 会话变量的值,而几个月来一直有效的方法今天似乎无法快速运行。执行搜索后,我将结果数存储在名为 $_SESSION[adv_search][num_results] 的会话变量中。然后我尝试通过执行 AJAX 调用在页面上检索此会话变量:
//get number of results from last query
num_results = $.ajax({
url: './ajax/getters/adv_search_num_results.php',
type: 'POST',
cache: false,
async: false
}).responseText;//ajax
adv_search_num_results.php 只包含:
<?php
session_start();
echo($_SESSION[adv_search][num_results]);
?>
AJAX 调用仍然有效(相对而言),但现在 chrome 要求我终止页面需要很长时间。我需要使用 async: false 因为我需要 num_results 来处理分页等其他事情。
这曾经运行得非常快,如果我注释掉那个 AJAX 调用并给 num_results 分配一个数字,搜索会很快执行。我不确定是否有人有灵丹妙药,但任何想法都会有所帮助。谢谢。
【问题讨论】:
-
您是否验证了数据库服务器和/或与它的连接不迟缓?
-
simshaun 我不认为他在这个特定的实例中访问了数据库,他所做的只是访问一个会话变量。
-
网站的其余部分功能正常,响应时间非常快。
-
它似乎与锁定的会话文件有关。会话结束后尝试添加 session_write_close()
-
@Darhazer 我添加了 session_write_close(),但它似乎没有任何影响。还有其他想法吗?