我们正在构建Google Analytics应用。当我们从另一个来源获取数据并在向用户显示之前进行一些计算时,用户需要等待30秒。
当我们在后台获取数据时,我们是否可以向用户显示等待页面,而不是在我们获取数据时将页面加载30秒。
任何人都能说明如何做到这一点吗?
答案 0 :(得分:1)
一种方法是使用AJAX使用HTTP GET请求轮询服务器上的页面。
您可以使用数据库,甚至更好APC
编辑:
由于我们不是在讨论文件上传,因此Session可能是比APC_UPLOAD_PROGRESS更好的选择。会话提供了每个用户存储,这应该是理想的,并且可以由APC等不同的商店支持。
答案 1 :(得分:1)
注意:对于灯箱,您必须包含灯箱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倒计时 - &gt; 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秒之间,你可以从数据库中检索你的数据。