php - 如何实现基于ajax响应的进度条

标签 php jquery ajax progress-bar

我已经尝试基于来自服务器端 (PHP) 的 ajax 响应来实现进度条。但是我无法识别进度条计算,例如如何通过 ajax 计算提交表单的请求和响应之间的进度条时间。

<script>
$('.uploadProject').on('submit',function(e){
      e.preventDefault();
    //ray.ajax();
    var formData = new FormData($(this)[0]);
    progress(80, $('#progressBar'));
    $.ajax({
        url: "ajax/submitted_project_action.php",
        type: "POST",
        data: formData,
        async: false,
        success: function (data) {
            if(data==1){
                window.location.href="submitted_project.php?success";
            }else{
                window.location.href="submitted_project.php?error";
            }
        },
        cache: false,
        contentType: false,
        processData: false
    });


})

 <script>
 function progress(percent, $element) {
var progressBarWidth = percent * $element.width() / 100;
$element.find('div').animate({ width: progressBarWidth },500).html(percent + "%&nbsp;");
}
</script>

我的 HTML 代码

   <style>
        #progressBar {
width: 400px;
height: 22px;
border: 1px solid #111;
background-color: #292929;
}
#progressBar div {
height: 100%;
color: #fff;
text-align: right;
line-height: 22px; /* same as #progressBar height if we want text middle aligned */
width: 0;
background-color: #0099ff;
}
        </style>

         <div id="progressBar"><div></div></div>

最佳答案

好的方法是 listen to the "progress" event listener .

例子:

$.ajax({
  type: 'POST', // GET/POST
  url: "/", // Some URL
  data: {}, // Misc data
  beforeSend: function(XMLHttpRequest) // Do the following before sending the request
  {
    //Upload progress
    XMLHttpRequest.upload.addEventListener("progress", function(event) // Add a "progress" listener.
    {
      if (evt.lengthComputable) 
      {  
        var percentComplete = (event.loaded / event.total) * 100;
        // You can use this data for your progress bar.
      }
    }, false); 
  },
  success: function(data)
  {
  // Here, you can make your progress bar green or something.
  }
});

关于php - 如何实现基于ajax响应的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002884/

相关文章:

javascript - 想要使用 Ajax 加载下拉列表中所选选项的图像和一些文本

c# - 发布到 azure 函数 - 解析 bool 值时出错

php - 单击后打开带有子菜单的水平菜单

php - Laravel MonoLog、pushProcessor 不记录附加属性

PHP json_encode 不适用于对象数组

Jquery AJAX : No 'Access-Control-Allow-Origin' header is present on the requested resource

javascript - 如何使用 Open Weather API 上的 fetch api 方法

php - 如何使用PHP解析Excel文件

jQuery 隐藏并爆炸导致位置错误

javascript - 如何将 jquery/javascript 验证转换为 PHP