javascript - 完成百分比 (jQuery + php)

标签 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 是我想显示发送了多少消息的进程。 现在在 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){

         }
       );
  }

我不知道如何让进程栏显示完成百分比!

最佳答案

根据评论进行编辑。

如果您想跟踪已上传了多少消息,那么您需要在当前 session 中执行轮询系统(您可以使用套接字来执行此操作,但这会变得越来越复杂)。

在 PHP 中,启动一个 session (在加载第一页之前)并创建 session 变量来存储进度。在您发布的页面中,使用相同的 session ,将进度设置为 0,每次 SendMessage 循环时,使用最新进度更新该变量。

在 JS 中,使用 AJAX 提交 PHP 请求(因此 HTML 保留),然后使用 setTimeout() 对您需要使用相同 session 编写的新文件执行第二个 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>

您的 HTML 应包含

<html>
    <div class="progressBar">
        <div class="progressIndicator">
        </div>
    </div>
</html>

您的 javascript (jQuery) 响应应包含

$('.progressIndicator').css({width: parseInt(data, 10) + "%"});

(其中数据是返回值,介于 0 和 100 之间)

关于javascript - 完成百分比 (jQuery + php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30794596/

相关文章:

javascript - 如何使用 Winston v2 过滤消息?

php - 如何轻松地在 PHP 中缩小 JS ......或者别的什么

javascript - AngularJS:无法发送带有适当 CORS header 的 POST 请求

javascript - 这个按钮是怎么回事?

javascript - 屏蔽 Node 中的敏感信息

javascript - 如何从函数作用域之外访问数据?

php - 否则如果不在 php 中工作

php - 用 mail、sendmail 和 smtp 在 PHP 中发送电子邮件有什么区别?

javascript - 根据选定的小时和分钟从表格中获取下一个最接近的时间

jquery - 定位 li 中的第一个链接