[英]Opencart 3 getProduct method causes slow page loading
我的 Opencart 3.0 運行很慢。 在 chrome 瀏覽器檢查器的 .network 選項卡中,它記錄了加載類別頁面的 23.02 秒。
當我嘗試調試它時,我可以看到加載緩慢發生在這里
catalog/model/catalog/product.php - public function getProduct($product_id)
在這個方法中,當我在返回的數組中注釋掉這一行時 - 'product_id' => $query->row['product_id']
,加載速度達到 7s。
方法getProduct($product_id)
在此方法getProducts($data = array())
中被調用。 調用該方法的部分如下所示。
$query = $this->db->query($sql);
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
當我注釋掉這一行時
//$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
加載速度達到3.5s。
我想不通的是為什么這部分代碼需要時間返回 - 'product_id' => $query->row['product_id']
我會感謝你的幫助。
看起來您的問題來自catalog/model/catalog/product.ph
p 文件中的getProduct()
和getProducts()
方法。 特別是這一行:
'product_id' => $query->row['product_id']
所以你可以檢查你的數據庫性能,完成這個查詢需要多少時間。
您還可以嘗試使用 LIMIT 子句或 WHERE 子句來限制查詢中檢索的行數。
您可以使用 Opencart 緩存系統來減少時間。
在第一次登錄時,它看起來更像是與數據庫相關的問題,而不是代碼問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.