gpt4 book ai didi

php - yii 框架上的 ajax 响应非常慢

转载 作者:行者123 更新时间:2023-11-29 13:41:12 25 4
gpt4 key购买 nike

我在使用 yii 框架时遇到了奇怪的问题。在本地主机上,ajax 响应需要 200 毫秒(速度很快,我很满意),而在我的实时服务器上,相同的功能需要 4 到 7 秒。

下面是我的 php ajax 函数:-

public function actionOpenpopup() {
$this->checkAjaxRequest();

$user_id = $_GET['uid'];

$rows = Yii::app()->db->createCommand()
->select('*')
->from('saved_designs')
->where('uid=:id', array(':id' => $user_id))
->order('date desc')
->queryAll();

$i = 0;
foreach ($rows as $row) {
$rows[$i] = $row;
$i++;
}
if ($rows) {
echo json_encode($rows);
}
else
echo json_encode(null);
}



function checkAjaxRequest() {
if (Yii::app()->request->isAjaxRequest) {
header('Content-Type: application/json; charset="UTF-8"');
return true;
} else {
throw new CHttpException('403', 'Forbidden Access');
exit;
}
}

javascript代码是:-

function sendAjaxCall(data){

$.ajax({
type : 'GET',
url : 'index.php/request/openpopup',
datatype : 'json',
data :data,
success: function (data) {
console.log(data);
}
});

}

*注意:- 到目前为止,数据库只有 10 到 20 条记录。另外,在实时服务器上,我所有的 ajax 调用都给我缓慢的响应。

最佳答案

我会尝试一些事情。首先,在您 echo 您的 json 后,我会终止您的脚本以确保没有其他内容运行:

if ($rows) {
echo json_encode($rows);
die();
}

此外,在 index.php 上,如果中间两行以 define() 开头,请确保站点已退出 Debug模式启用每个页面加载 Yii 正在重新创建缓存文件,这可能需要一段时间,特别是如果您包含像 bootstrap 这样的扩展。我在为某人做一些工作时遇到过这个问题,并且他们的网站托管在 GoDaddy 上。由于某种原因,文件创建速度非常慢并且拖累了一切。

<?php
$yii=dirname(__FILE__).'/../framework/yii.php';
$config=dirname(__FILE__).'/protected/config/test.php';

//defined('YII_DEBUG') or define('YII_DEBUG',true);
//defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

require_once($yii);
Yii::createWebApplication($config)->run();

还有其他功能运行缓慢吗?您的错误日志中有任何错误吗?

帮助调试创建另一个不需要 AJAX 调用的操作的另一个选项。这种方式比依赖 ajax 更容易调试,而且它可以帮助您缩小问题的根源。另外不知道为什么,但你得到了行数组,然后重新填充行数组,这是非常多余的。

public function actionCheckpopup() {
$user_id = $_GET['uid'];

$rows = Yii::app()->db->createCommand()
->select('*')
->from('saved_designs')
->where('uid=:id', array(':id' => $user_id))
->order('date desc')
->queryAll();

echo json_encode($rows);
die();
}

然后只需使用浏览器并转到http://yoursite.com/index.php/request/checkpopup?uid=1

关于php - yii 框架上的 ajax 响应非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com