0
我正在使用Harvest API基本連接到收穫的PHP頁面,並獲取一些信息。代碼基本上返回Harvest中的所有用戶對象,並計算每個用戶的開銷。加載大約需要50秒。請參閱我的代碼如下 -如何使這個PHP頁面加載更快
<?php require_once('connection.php');
$result= $api->getUsers();
$users=$result->data;
$range= Harvest_Range::lastMonth();
foreach($users as $key=>$value){
$user_id=$value->get("id");
$first_name=$value->get("first-name");
$last_name=$value->get('last-name');
$result_expenses=$api->getUserExpenses($user_id, $range);
$expenses_data=$result_expenses->data;
$total_cost=0;
foreach($expenses_data as $key=>$value){
if($value->get("is-locked")=="true"){
$total_cost=$total_cost+$value->get("total-cost");
}}
?>
<?php if($total_cost!=0){?>
<tbody>
<tr>
<td> <?php echo $first_name; echo " ".$last_name; ?> </td>
<td> $ <?php echo $total_cost; ?> </td>
</tr>
</tbody>
<?php }}?>
</table>
有什麼辦法讓頁面加載速度更快?
首先進行基準測試並找出哪些部分較慢。 – rtfm
我認爲你必須首先在你身邊緩存記錄,然後你可以從緩存或本地數據庫中獲取數據 – OsDev
在用戶請求頁面時,在運行時進行這些類型的請求不是一個好主意。你應該像@OsDev所建議的那樣去做。有一個後臺腳本,可以按設定的時間間隔執行調用和計算,並將結果存儲在某個緩存(memcache,redis或類似的)中或某些數據庫中。然後訪問者只需要從緩存或數據庫中獲取數據。 –