【发布时间】:2021-11-09 07:53:48
【问题描述】:
我对 codeignitor 会话有一个问题。我创建了一个名为“Welcome.php”的控制器,其中包含三个功能。一个是index,第二个是home,最后一个是getAjaxTestData.
当我在浏览器 (http://localhost:9019/welcome) 中加载欢迎控制器时,它会默认调用 index 函数并设置一些会话并加载欢迎视图。在视图文件中,我将 ajax 请求发送到 getAjaxTestData 函数,并在该函数中设置睡眠 50 秒。
调用 ajax 请求后,它会等待 50 秒。同时,如果我通过调用 Home 函数链接“https://localhost:9019/welcome/home”打开另一个链接,则在上一个 ajax 请求完成之前不会加载。
只有在我设置会话时才会发生这种情况。如果我不设置会话,那么即使我在 getAjaxTestData 函数中设置了睡眠,那么 https://localhost:9019/welcome/home 也会立即打开。
下面是我的控制器-您能检查一下..为什么在使用会话时其他页面正在等待加载,直到上一页 ajax 请求完成?有什么问题吗?
我的Welcome.php 控制器中的代码
public function index()
{
$newdata = array(
'user_id' => "123",
'username' => "siddu",
);
$this->session->set_userdata($newdata);
session_write_close();
$this->load->view('welcome_message');
}
public function getAjaxTestData()
{
//echo "<pre>";print_r($this->session->userdata);echo "</pre>";die();
sleep(15);
$data=array();
$data['success']=0;
$data['start_time']=date("Y-m-d h:m:s");
$data['end_time']=date("Y-m-d h:m:s");
$data['success']=1;
echo json_encode($data);
die();
}
function Home()
{
$this->load->view('home');
}
【问题讨论】:
标签: ajax performance codeigniter session sleep