gpt4 book ai didi

javascript - 在多个页面 html/php 中拆分一个非常长的表

转载 作者:可可西里 更新时间:2023-10-31 23:20:16 24 4
gpt4 key购买 nike

问题来了。我无权创建数据库,而且我每天都会收到一个包含大量数据的 csv。 (超过 200 000 行)

我必须让 Intranet 上的每个人都可以访问的数据。因此,我创建了一个简单的 html/php 页面,该页面提取所有行并在表格中显示这些信息,并使用简单的 fgetcsv 在每一列上使用过滤器。

问题是网络浏览器不适契约(Contract)时显示那么多信息,所以它会导致它崩溃或卡住一段时间,你有一段时间不能做任何事情。

我想知道是否有人知道如何对页面说“例如仅加载前 100 行,然后自动创建一个将加载并显示接下来的 100 行等的下一页”。

我设法只显示前 x 行,然后当您单击一个按钮时,表格将扩展为接下来的 x 行,但它们仍然会同时加载。剩下的 y 只是隐藏的,所以浏览器仍然死机或卡住。

有什么想法吗?

谢谢

最佳答案

这确实是一个通用的分页问题。您的数据是存储在数据库中还是 CSV 文件中都没有关系。

只需通过查询字符串或 URL 重写将一些偏移量参数传递给您的 PHP 脚本,并使用它来仅选择 CSV 列表的一部分。

像这样:/big-table.php?page=3

// Getting passed argument.
$pageNumber = (int) $_GET['page'];

// Items per page default.
$itemsPerPage = 100;

// Calculating offset.
$offset = ($pageNumber - 1) * $itemsPerPage;

然后使用 $offset$itemsPerPage 通过限制 CSV 解析循环的范围来仅检索 CSV 文件的一部分。

您还可以将每页项目值作为参数传递给您的脚本,以便从您的网络界面控制该值。例如,如果您想要创建一个能够在每页中选择 10、50、100 个项目等的下拉菜单。

如果您需要它 - 您始终可以使用 AJAX 动态获取更多项目,它不会真正影响您的分页实现服务器端,只会影响输出格式(JSON 而不是 HTML)。

当然,数据库实现会更快,我建议尽可能选择它。和/或者您可以使用一些缓存层来加快速度。

关于javascript - 在多个页面 html/php 中拆分一个非常长的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24431503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com