如何使这个PHP页面加载更快

时间:2017-08-28 21:33:10

标签: php api pageload page-load-time

我正在开发一个php页面,它基本上使用Harvest API连接到Harvest并获取一些信息。代码基本上返回Harvest中的所有用户对象,并计算每个用户的费用。加载大约需要50秒。请参阅下面的代码 -

<?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>

有没有办法让页面加载更快?

1 个答案:

答案 0 :(得分:0)

您的页面很慢,因为您要为每个用户请求数据,一次一个。这意味着,当您获得更多用户时,您将不得不提出更多请求。更多请求意味着您的申请需要更长时间。

不幸的是,您似乎一次只能从一个用户请求数据:http://mdbitz.com/docs/harvest-api/

如果您能够在本地存储数据,则可以大大提高应用程序的速度。您可以将其存储在易于访问的任何位置,例如数据库,缓存甚至文本文件。然后,您需要确定从Harvest API更新本地副本以获取最新数据的频率。