透過curl json給我一千筆數據,我前端要怎麼做分頁?

假設我透過curl, 對方透過json來我這直接給我一千筆數據
但這樣一次出現一千筆似乎不太對?如何透過php方式實現一頁20筆?有範本可參考?謝謝!

一點頭緒也沒有

function httpRequest ($api, $data_string)
{
  $ch = curl_init($api);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  $result = curl_exec($ch);

  curl_close($ch);

  return json_decode($result);
}


$x = array(
      "session" => $_SESSION['session']
    );
    $x_string = json_encode($x);
    $x = httpRequest($api, $x_string);

我是這樣取對方的數據的,只是要怎麼....做分頁?

阅读 4.3k
7 个回答

理论上分页这种事情是接口处理的,一次一千条数据不太合理

最简单的方法你在请求接口时多带两个参数offset,count
offset为当前页码的数值,count为每页需要展示的数据量

后端接收到这两个参数后,计算出每次请求的数据的在数据库中的起始位置
eg:

//$offset $count 对应前端传过来的值
$a = ($offset-1)*$count;
// 后端查数据库的时候,加上limit $a,$count

这对方接口设计就有问题,难道没有页码或者时间这种参数吗?

此问题接口设计的时候就要考虑周到,分页应该交给后端,后端不支持的话前端无法一次只获取某一页的数据。后端可以加个分页支持,前端通过透过query string指定页码。

都超过一千条了后端还不做分页?我这里超过20条后端就要做分页了

就像楼上说的这么多数据分页应该由后端处理了
如果你说的前端是js那可以类似这样 再for-of取了

function *paginate(data, offset, limit) {
   for(var i = offset; i<=offset + limit; i++) {
     yield data[i];
   }
}

(°Д°)1000条还不分页吗?
理论上分页是要由后端来完成的,一个基本思路是:
前端需要传给后端 当前页数,每页数据量;
后端返回给前端 当前页数据,总数据条数。
前端要根据总数据量和每页条数做出相应的页码链接~

取到的数据是相同的话 那就 后台定时 获取 入库 缓存 然后 你这边查询分页 给前端

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题