【发布时间】:2011-08-10 19:37:45
【问题描述】:
我想知道如何制作像gmail这样的进度条。
我试过了
<script src="jquery.js"></script>
<script>
$(function (){
$.ajax({
url: 'index.php',
success: function(data) {
$('#bar').html(data);
}
});
})
</script>
<div id="bar"></div>
还有index.php
[编辑]:sleep() 我只是想模拟连续的输出流,例如 php 不支持的多线程程序。
<?php
for($i=0; $i<=10; $i++)
{
sleep(1);
echo "$i";
}
似乎输出立即回显,所以我立即得到结果012345678910。
我也试过了
setInterval(function (){
$.ajax({
url: 'index.php',
success: function(data) {
$('#bar').html(data);
}
});
}, 1000);
相反,我在维持 'progress' 的价值时遇到了麻烦,所以我做到了
<?php
session_start();
if(isset($_SESSION['value'])){
if($_SESSION['value'] >= 10)
{
unset($_SESSION['value']);
}
else
{
$_SESSION['value']++;
}
}
else
{
$_SESSION['value'] = 0;
}
echo $_SESSION['value'];
作为我的 php.ini 的一部分。但似乎,我在连续间隔上调用 ajax 函数。
我的问题是,
-
google 在登录 gmail 时如何使用进度条。他们是否像我在第一个示例中尝试的那样获得连续的
李>'stream'数据,或者在某些 url 上发送(定期)请求(尽管不是通过 ajax .. 通过 JSONP 或其他方式)并像第二个那样更新页面? 我可以用
php做同样的事情吗,即使不是用 php,我可以使用 javascript 和其他支持多线程的服务器端脚本语言来做吗?
【问题讨论】:
-
您应该将
type="text/javascript"添加到您的脚本标签中。 -
@ThiefMaster 但我似乎在工作
-
这就是为什么它是一个评论而不是一个答案 - 它只是为了改进你的代码。
-
@ThiefMaster:在 HTML 5 中不再是要求。
-
这并不意味着有点冗长是一件坏事
标签: php javascript ajax progress-bar