Javascript 完成百分比(jQuery&x2B;php)
我想制作完成百分比(进程条),它显示处理了多少数据。 这是我的php代码:Javascript 完成百分比(jQuery&x2B;php),javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想制作完成百分比(进程条),它显示处理了多少数据。 这是我的php代码: $w->connect(); try { $w->loginWithPassword($password); } catch (exception $e) { return false; } foreach($targets as $target) { $w->sendMessage($target, $text); } return true; foreach是我想显示发送了
$w->connect();
try {
$w->loginWithPassword($password);
}
catch (exception $e) {
return false;
}
foreach($targets as $target)
{
$w->sendMessage($target, $text);
}
return true;
foreach是我想显示发送了多少消息的进程。
现在在js中,我有:
function send_message(){
var msg = {msg_receptions:$('#msg_receptions').val(),msg_from:$('#msg_from').val(),msg_text: $('#msg_text').val()};
$.post(
site_url('ajax/send_message'),
msg,
function(data, status){
}
);
}
我不知道如何使进程栏显示完成百分比 根据评论进行编辑 如果您想跟踪您的消息被上传的数量,那么您需要在当前会话中执行轮询系统(您可以使用套接字,但这越来越复杂) 在PHP中,启动一个会话(在加载第一个页面之前)并创建会话变量来存储进度。在您发布到的页面中,使用相同的会话,将进度设置为0,并且每次
SendMessage
循环时,使用最新的进度更新该变量
在JS中,使用AJAX提交PHP请求(使HTML保持不变),然后使用setTimeout()
对您需要编写的新文件执行第二个AJAX请求,该文件使用相同的会话,获取更新的进度数据并返回-这将与初始答案相同。收到响应后,再次执行setTimeout
并重复(不要使用setInterval
,因为这样做会使服务器崩溃)。当初始请求返回时,终止超时
最后一点注意:使用jQueryUI在这方面做得太过分了;所以,只有当你有其他的东西要用的时候才使用它。否则就是10行代码(如下)
希望这有助于回答这个问题
**先前的答复**
最简单的方法是将两个div相互包裹
您的样式表应包含:
<style>
.progressBar {
position: relative;
border: 1px solid black; /* Style as you see fit */
}
.progressIndicator {
position: absolute;
left: 0;
top: 0;
width: 0;
height: 10%;
background: #f00; /* Style as you see fit */
}
</style>
(其中数据是在0和100之间返回的值)回答不错,+1,也非常接近10k;)不,这不是我的答案。我想要真正的过程完成百分比。我可以用jQueryUI制作流程栏。比如上传了多少数据?或者是登录需要很长时间,您想知道登录过程已经进行了多远?我想发送需要很多时间的消息,然后我想显示发送的许多消息。
<html>
<div class="progressBar">
<div class="progressIndicator">
</div>
</div>
</html>
$('.progressIndicator').css({width: parseInt(data, 10) + "%"});