我有一个大问题:在我的网站上会有一个页面,用户可以选择日期和其他选项来查看世界上发生的地震。
问题是,例如,用户是否可以查看去年发生的地震。这个选项将返回一个非常大的数组,我认为这会减慢加载速度,也许浏览器会对文件有限制。
那我怎么才能拆分这个大数组呢?
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"
});
你能给我一些建议吗?非常感谢,对不起我的英语。。。
2条答案
按热度按时间nbewdwxp1#
使用
limit
以及offset
实现分页。然而,您可以将用例分为“探索少数地震”和“探索许多地震”。因此,第一个可以返回一个包含所有细节的完整列表,而另一个将返回一个热图。热图是在后端生成的,不涉及将所有行发送到前端。一个用例或另一个用例由匹配过滤器的行数触发。
blpfk2vs2#
虽然这个问题有点宽泛,但我可以给出一些相当标准的建议,这些建议应该能帮助你朝着正确的方向前进。
一般来说,当您有某个列表,并且该列表可能非常大时,一种常见的技术是实现“分页”。从字面上说,把它变成多页。
一般的方法是以某种方式传入一个页面参数(通常在查询字符串中),然后使用该参数获取一定数量的结果。
在查询端,可以使用
LIMIT
设置最大值,然后使用page参数设置OFFSET
.例如,如果要在每页显示200个结果,那么
LIMIT
是200。如果您在第3页,那么您可以将偏移设置为(page-1)*max
,也就是(3-1)*200
或者400
. 这将得到从结果400到结果200的结果。同时,还返回最大数量的结果,以便您可以在前端构建适当的ui:
然后,您只需显示这个和您的页面控件,就可以全部设置好了。