我们正在构建一个分析应用程序。这将需要用户等待30秒,而我们从其他来源获取数据并进行一些计算,然后再显示给用户。PHP在后台获取数据
当我们在后台获取数据时,有没有什么办法可以向用户显示一个等待页面,而不是在我们获取数据时将页面加载30秒。
任何人都可以告诉我们如何做到这一点吗?
我们正在构建一个分析应用程序。这将需要用户等待30秒,而我们从其他来源获取数据并进行一些计算,然后再显示给用户。PHP在后台获取数据
当我们在后台获取数据时,有没有什么办法可以向用户显示一个等待页面,而不是在我们获取数据时将页面加载30秒。
任何人都可以告诉我们如何做到这一点吗?
注:收藏夹,你必须包括收藏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>
action_timer.ctp
注:倒计时,你必须包括jQuery的倒计时 - >http://keith-wood.name/countdown.html
<script>
$(function() {
$('#syncronize_header_timer').countdown(
{
until:+50,
format: 'MS',
onExpiry: ltliftOff
});
});
function ltliftOff() {
$.lightbox().close();
}
<script>
<div id="syncronize_header_timer" ></div>
==========================================
上面的onload _wating()这个函数打开灯箱并且向控制器动作进行ajax查询并打开action_timer.ctp
在action_timer.ctp中,我们使用倒数计时器。这个计时器计数到50,然后它自动关闭。
这50秒之间,你可以从数据库中检索你的数据。
一种方法是使用AJAX通过HTTP GET请求在服务器上轮询页面。
您可以使用数据库甚至更好APC
编辑:
因为我们不是在谈论一个文件上传这里,会话可能比APC_UPLOAD_PROGRESS一个更好的选择。会话提供的每个用户存储在这里应该是理想的,并且可以由不同的商店如APC支持。
是啊我提取的数据将在显示前存储在数据库本身 – 2012-07-21 04:57:56
如果流量很大,数据库可能不是放置轮询机制后端的最佳位置。 APC是驻留在Web服务器上的内存,所以应该对性能更好,但对于较小的负载,我认为数据库应该没问题。 – quickshiftin 2012-07-21 04:59:39
我会检查出来。这不适用于共享服务器? – 2012-07-21 05:10:03