PHP在后台获取数据
我们正在构建一个分析应用程序。这将需要用户等待30秒,同时我们从另一个来源获取数据,并在向用户显示数据之前进行一些计算 当我们在后台获取数据时,是否有任何方法可以向用户显示等待的页面,而不是在获取数据时让页面加载30秒PHP在后台获取数据,php,cakephp,fetch,cakephp-2.1,Php,Cakephp,Fetch,Cakephp 2.1,我们正在构建一个分析应用程序。这将需要用户等待30秒,同时我们从另一个来源获取数据,并在向用户显示数据之前进行一些计算 当我们在后台获取数据时,是否有任何方法可以向用户显示等待的页面,而不是在获取数据时让页面加载30秒 有人能解释一下这是如何实现的吗?一种方法是使用AJAX在服务器上使用HTTP GET请求轮询页面 您可以使用数据库,甚至更好 编辑: 因为我们这里不是在讨论文件上传,所以会话可能是比APC_upload_PROGRESS更好的选择。会话提供每个用户的存储,这在这里应该是理想的,并
有人能解释一下这是如何实现的吗?一种方法是使用AJAX在服务器上使用HTTP GET请求轮询页面 您可以使用数据库,甚至更好 编辑:
因为我们这里不是在讨论文件上传,所以会话可能是比APC_upload_PROGRESS更好的选择。会话提供每个用户的存储,这在这里应该是理想的,并且可以由不同的存储(如APC)支持。注意:对于lightbox,您必须包括lightbox js
<script>
function onload_wating()
{
var syncronize_target=SITE_URL+'your_controllername/action_timer/';
$.lightbox(syncronize_target, {
width : 450,
height : 260,
'modal' : true,
'onOpen' : function() {
$(".jquery-lightbox-button-close").css({"visibility":"hidden","display":"none"});
}
});
}
onload_wating();
<script>
函数onload_wating()
{
var syncronize_target=SITE_URL+'your_controllername/action_timer/';
$.lightbox(同步化\u目标{
宽度:450,
身高:260,
“模态”:正确,
“onOpen”:函数(){
$(“.jquery lightbox button close”).css({“可见性”:“隐藏”,“显示”:“无”});
}
});
}
超负荷运转();
action_timer.ctp
注意:对于倒计时,您必须包括jquery倒计时->
$(函数(){
$(“#同步#头#计时器”)。倒计时(
{
直到:+50,
格式:“MS”,
一个解释:ltliftOff
});
});
函数ltliftOff(){
$.lightbox().close();
}
==========================================
上图onload_wating()此函数用于打开lightbox并对控制器操作进行ajax查询,并打开action_timer.ctp
在action_timer.ctp中,我们使用倒计时。
此计时器计数为50,然后自动关闭
在这50秒之间,您可以从数据库中检索数据。是的,我正在获取的数据在显示之前将存储在数据库中。如果存在大量流量,数据库可能不是放置轮询机制后端的最佳位置。APC是驻留在Web服务器上的内存,因此性能应该更好,但对于较小的负载,我认为DB应该可以。事实上,现在我想到了,如果不是您正在监视的上载,会话可能会更好。同样的想法,负载在Web服务器上,而不是数据库上,当然是高度可移植的。。我将做大约8个api调用来获取各种数据,然后我需要存储在数据库中,以备将来使用。
<script>
$(function () {
$('#syncronize_header_timer').countdown(
{
until:+50,
format: 'MS',
onExpiry: ltliftOff
});
});
function ltliftOff() {
$.lightbox().close();
}
<script>
<div id="syncronize_header_timer" ></div>