我有一個請求在 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 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 >'
'<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 布局需要時間而不是 SQL 查詢。
謝謝 !
uj5u.com熱心網友回復:
在您的瀏覽器中使用 devtools 來確定是哪個步驟導致速度變慢。Network 選項卡將顯示 Ajax 請求和資料獲取的時間間隔。如果該時間間隔不是問題,則可能與 Javascript 有關。您可以使用“性能”選項卡更深入地了解 Javascript 性能。
uj5u.com熱心網友回復:
嘗試使用索引看看
MySQL 可以在 ORDER BY 中的列上使用索引(在某些條件下)。但是,MySQL 不能使用混合 ASC、DESC 順序的索引(SELECT * FROM foo ORDER BY bar ASC,pants DESC)。分享您的查詢和 CREATE TABLE 陳述句將有助于我們更具體地回答您的問題。
uj5u.com熱心網友回復:
通過這種優化,我剛剛從 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 >' '<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 >'
// '<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);
我印象深刻
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/424091.html
