我正在开发一个项目,该项目会产生一个"联赛表"基于大量数据,类似于各种运动(即足球)中使用的数据。我已经在PHP中构建了后端,它处理数据并输出结果,但每个用户大约需要6-9秒,一组中平均有10-20个用户,页面加载需要一分钟。说实话,我预计它需要更长的时间,因为脚本必须循环每个用户大约10,000条记录并做相当多的算术。
我的问题是,将这些数据加载到页面的最佳方法是什么?我这样做的方法是在页面大小的基础上设置div,除了所有其他内容之外,简单地说在中间加载 - 这样一旦页面加载就会自动隐藏。这种方法很好,但我认为它会为各种问题敞开大门 - 一个可能是页面超时或者用户认为它已经崩溃等。
我被建议做的是拥有一个轻量级页面,它在服务器上调用api来发起请求。 api以请求id响应(或者无论如何都要识别请求),然后开始生成数据。该页面将每隔15秒查询一次api,看看它是如何做的,最终api会回复说它完整 - 然后用户将被重定向到查看报告。
非常感谢任何建议/建议。
提前致谢,
Smithey。
答案 0 :(得分:1)
您应该使用AJAX将数据加载到页面中的div
,示例代码(此代码使用jQuery):
HTML:
<div id="loading"><p>Please wait, loading data...</p></div>
<div id="data"></div>
Javascript:
$(function(){ // This is so that it executes only once the document is loaded
$("#data").load("/script.php", function(response, status, xhr) {
if(status == "success") {
// On success
$('#loading').hide(); // Hides the "please wait" text
} else if (status == "error") {
// Do something on error
alert("Could not load data, please refresh the page."); // Example alert
}
});
});