gpt4 book ai didi

javascript - 如何使用 Ajax 调用从 MySql 中拆分最大的数组?

转载 作者:行者123 更新时间:2023-11-29 05:54:49 25 4
gpt4 key购买 nike

我有一个大问题:在我的网站上会有一个页面,其中有一个表单,用户可以在其中选择日期和其他选项来查看世界上发生的地震。

问题是,例如,用户是否可以查看去年发生的地震。此选项将返回一个非常大的数组,我认为这会减慢加载速度,并且浏览器可能会对文件有限制。

那么我该如何拆分大数组呢?

PHP

$query = "SELECT * FROM earthquakes WHERE milliseconds > 0";
$query = mysqli_query($con,$query);

if ($result = mysqli_query($con, $query)) {
while ($row = mysqli_fetch_assoc($result)) { // fetches a result row as an associative array
$result[] = $row;
}
mysqli_free_result($result);
}

echo json_encode($result); // return value of $result
mysqli_close($con); // close connection with database

JavaScript

$.ajax({
type: "POST",
url: "database-sismico.php?"+query,
success: function (result) { //Performs an async AJAX request
if (result) {

}
else {
//will print alert to advice user that there aren't quakes
}
},
dataType:"json"
});

你能给我一些建议吗?非常感谢,对不起我的英语...

最佳答案

虽然这个问题有点宽泛,但我可以提供一些相当标准的建议,应该可以帮助您指明正确的方向。

一般来说,当你有一些东西的列表时,这个列表可能非常大,一个常用的技术是实现“pagination”。从字面上看,将其变成多个页面。

一般的方法是以某种方式传入页面参数(通常在查询字符串中),然后使用它来获取一定数量的结果。

在查询端,您可以使用 LIMIT 设置最大值,然后使用页面参数设置 OFFSET

例如,如果您打算每页显示 200 个结果,那么您的 LIMIT 就是 200。如果您在第 3 页,那么您可以将偏移量设置为 (page- 1)*max,即 (3-1)*200400。这将从结果 400 开始获取结果并获取 200。

SELECT * FROM earthquakes WHERE milliseconds > 0 OFFSET 400 LIMIT 200

除此之外,还返回最大数量的结果,因此您可以在前端构建适当的 UI:

SELECT COUNT(1) FROM earthquakes WHERE milliseconds > 0

然后,您只需显示它和您的页面控件,一切就绪。

关于javascript - 如何使用 Ajax 调用从 MySql 中拆分最大的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50584081/

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