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

发布于 2022-09-06 23:15:10 字数 806 浏览 13 评论 0

假設我透過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);

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

孤芳又自赏 2022-09-13 23:15:10

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

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

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

//$offset $count 对应前端传过来的值
$a = ($offset-1)*$count;
// 后端查数据库的时候,加上limit $a,$count
路还长,别太狂 2022-09-13 23:15:10

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

成熟稳重的好男人 2022-09-13 23:15:10

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

玩世 2022-09-13 23:15:10

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

∞琼窗梦回ˉ 2022-09-13 23:15:10

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

function *paginate(data, offset, limit) {
   for(var i = offset; i<=offset + limit; i++) {
     yield data[i];
   }
}
疯到世界奔溃 2022-09-13 23:15:10

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

旧时模样 2022-09-13 23:15:10

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文