Php 为什么使用ajax查询速度慢?
我用一些方法为搜索数据库创建了一个PHP类。i、 ePhp 为什么使用ajax查询速度慢?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我用一些方法为搜索数据库创建了一个PHP类。i、 e如,全文和… 我在一个巨大的数据库上做了测试。搜索速度非常快,所以我开始在我的页面中使用这个脚本 我决定使用AJAX来加快速度 这是我的ajax代码: $.ajax({ type: "POST", data: publisher + '&blur=true', url:"server/advance2.php", ifModified: true, /* teste
如
,全文
和…
我在一个巨大的数据库上做了测试。搜索速度非常快,所以我开始在我的页面中使用这个脚本
我决定使用AJAX来加快速度
这是我的ajax代码:
$.ajax({
type: "POST",
data: publisher + '&blur=true',
url:"server/advance2.php",
ifModified: true, /* tested with and without this */
cache: true, /* tested with and without this */
statusCode: { 404: function() {
$('#target').html('<h4 class="col-md-offset-4 col-md-3 textRed textCenter farsi">Error...</h4>');
}//404
},//statusCode
beforeSend: function() {
$('#target').html('<img src="e995a9c2864f.gif" class="col-md-offset-4 col-md-3" alt="We are searching, please wait"/>');
},
success: function(result) {
$('#target').html(result)
}
});//Ajax Request After Blur
$.ajax({
类型:“POST”,
数据:publisher+“&blur=true”,
url:“server/advance2.php”,
如果修改:true,/*在有或无此选项的情况下进行测试*/
cache:true,/*使用和不使用此选项进行测试*/
状态代码:{404:function(){
$('#target').html('Error…');
}//404
},//状态码
beforeSend:function(){
$('#target').html('');
},
成功:功能(结果){
$('#target').html(结果)
}
});//模糊后的Ajax请求
但搜索速度明显下降
您能告诉我为什么会发生这种情况,以及如何修复它吗?一些快速调试的想法: 1) 打开浏览器调试器(通常从F12开始),确保响应的大部分时间都在web服务器上等待(vs渲染等)
2) 在服务器端,找到db查询日志,并查看查询本身实际需要多长时间。如其他答案所述,这里有许多活动部件。您只需要一步一步地找到比预期时间长的查询。基准测试查询在实际代码中实际花费的时间(在SQL查询开始时和之后加上时间戳的简单日志语句就足够了)。Ajax并没有使SQL查询本身变慢。这是你的问题中没有描述的东西。回到你的方式?瓶颈在哪里?调试您的代码,以明确哪些部分运行缓慢。如果PHP代码需要很长时间来响应这个AJAX调用,那么任何人都无法知道为什么PHP代码运行缓慢而没有看到PHP代码。如果这段代码运行缓慢,那么缓慢的部分是什么?在调试器中单步执行时,哪一行代码的执行时间最长?总而言之。。。别让我们猜。调试您的代码并找出原因。@David:没有PHP分析器吗?从90年代末开始,我就没有做过很多这方面的工作,但我希望有。通过Ajax简单地调用SQL不会使SQL变慢。如果有问题,它就在别处。这可能是因为您的网站使用的查询参数与您测试的不同,但速度要慢得多。可能是(出于一些不明显的原因)Ajax回调非常慢。可能有很多因素,但Ajax神奇地使SQL查询变慢并不在其中。