我请求在我的mySQL数据库中获取数据(36,848条条目)。然后,我在我的网页上用jQuery格式化并附加它们。
这两次手术需要2分30秒。在此期间,页面上不可能进行其他操作。
有什么方法来优化这个过程来加速这个过程吗?像这样,它是不可用的。
我的PHP函数
<?php
function get_my_customers() {
$req = $bdd->prepare("SELECT * FROM clients ORDER BY raison_sociale");
$req->execute();
$customers = $req->fetchAll(PDO::FETCH_ASSOC);
return $customers;
}
if(isset($_POST['ajax'])){
$result = get_my_customers();
echo json_encode($result);
}
?>jQuery (Ajax)中的数据检索
function get_my_customers(){
var customers;
$.ajax({
url: "model/application/*******/customers/get_my_customers.php",
async: false,
type: "POST",
dataType: 'json',
data: {ajax: 'true'},
success: function(data)
{
customers = data;
}
});
return customers;
}
var my_customers = get_my_customers();
$('#customers_list').append('<div class="list_card" card="customers_list"></div>');
$.each(my_customers, function(key, val){
if(val.enseigne == null){
var enseigne = '';
}else{
var enseigne = ',' + val.enseigne;
}
$('.list_card[card="customers_list"]').append(''+
'<div class="list_card_element">'+
'<div><b>'+ val.numero_client +'</b></div>'+
'<div>'+
'<b>'+ val.raison_sociale +'</b>' + enseigne +
'<br>'+
val.cp_livraison + ', ' + val.adresse_livraison +
'</div>'+
'</div>'
);
});你知道我能做些什么来加快处理时间吗?我尝试将SELECT查询限制在我需要的字段上,但这并没有改善处理时间。
我想知道是否需要时间而不是jQuery查询而不是布局。
谢谢!
发布于 2022-02-09 15:22:02
通过这个优化,我刚刚从2分钟30次到14次。
var construct_customers = "";
$.each(my_customers, function(key, val){
if(val.enseigne == null){
var enseigne = '';
}else{
var enseigne = ',' + val.enseigne;
}
construct_customers += '<div class="list_card_element">'+'<div><b>'+ val.numero_client +'</b></div>'+'<div>'+'<b>'+ val.raison_sociale +'</b>' + enseigne +'<br>'+val.cp_livraison + ', ' + val.adresse_livraison +'</div>'+'</div>';
//OLD CODE
// $('.list_card[card="customers_list"]').append(''+
// '<div class="list_card_element">'+
// '<div><b>'+ val.numero_client +'</b></div>'+
// '<div>'+
// '<b>'+ val.raison_sociale +'</b>' + enseigne +
// '<br>'+
// val.cp_livraison + ', ' + val.adresse_livraison +
// '</div>'+
// '</div>'
// );
});
$('.list_card[card="customers_list"]').append(construct_customers);我印象深刻
发布于 2022-02-09 14:48:07
在浏览器中使用devtools来确定是哪个步骤导致了减速。Network选项卡将显示Ajax请求和数据获取的时间间隔。如果这个时间间隔不是问题所在,那很可能是Javascript的问题。您可以使用performance选项卡更深入地了解Javascript性能。
发布于 2022-02-09 14:32:49
尝试使用索引参见that
MySQL可以按顺序(在某些条件下)对列使用索引。但是,MySQL不能使用混合ASC索引,(从,pants )中选择*。共享查询和创建表语句将帮助我们更具体地回答您的问题。
https://stackoverflow.com/questions/71051296
复制相似问题