Ham*_*med 5 javascript php ajax jquery
我想让完成百分比(进程条)显示我处理了多少数据.这是我的PHP代码:
$w->connect();
try {
$w->loginWithPassword($password);
}
catch (exception $e) {
return false;
}
foreach($targets as $target)
{
$w->sendMessage($target, $text);
}
return true;
Run Code Online (Sandbox Code Playgroud)
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){
}
);
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何让流程栏显示完成百分比!
根据评论进行编辑。
如果您想跟踪已上传的消息数量,那么您需要在当前会话中执行轮询系统(您可以使用套接字执行此操作,但这会变得很复杂)。
在 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>
Run Code Online (Sandbox Code Playgroud)
您的 HTML 应该包含
<html>
<div class="progressBar">
<div class="progressIndicator">
</div>
</div>
</html>
Run Code Online (Sandbox Code Playgroud)
您的 javascript (jQuery) 响应应包含
$('.progressIndicator').css({width: parseInt(data, 10) + "%"});
Run Code Online (Sandbox Code Playgroud)
(其中data是返回0到100之间的值)
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |