ajax - Code Ignitor Session 和页面加载问题
问题描述
我对 codeignitor 会话有一个问题。我创建了一个名为“Welcome.php”的控制器,其中包含三个功能。一个是index
,第二个是home
,最后一个是getAjaxTestData.
当我在浏览器(http://localhost:9019/welcome)中加载欢迎控制器时,它会默认调用索引函数并设置一些会话并加载欢迎视图。在视图文件中,我将 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');
}
解决方案
您的代码没有任何问题。CodeIgniter 重写 Session 库,默认加锁,防止使用同一个 session 的两个 HTTP 请求同时运行。在此处查看 codeigniter 文档
推荐阅读
- python - 绘制累积召回曲线 Python
- user-defined-functions - 用户定义的 pdb 函数
- python-3.x - 如何将模型输入传递给tensorflow keras中的损失函数?
- javascript - 如何使用 JavaScript 或 jQuery 从 HTML 中的无序列表中获取所有列表项?
- python-3.x - python - 如何将日期时间作为python中的值?
- spring - docker中的Spring配置服务器超时
- postgresql - PostgreSQL 连接池架构
- artificial-intelligence - 规则引擎/Rete算法中是否允许使用函数符号?
- python - 如何在 python 中使用 requests 模块使用 Udemy api
- node.js - NodeJS TypeScript - Mongoose index.d.ts 抛出错误