javascript – 如何在jQuery.get()中有一个进度条

前端之家收集整理的这篇文章主要介绍了javascript – 如何在jQuery.get()中有一个进度条前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可能有一个衡量jQuery.get()进度的进度条?

解决方法

这在当前版本的jQuery中并不是开箱即用的,但仍然可以轻松完成.

您应该监听jQuery允许您访问的XMLHttpRequest的progress事件.一个例子from Dave Bond’s blog

$.ajax(
{
  type: 'POST',// 'POST' here so that _upload_ progress _also_ makes sense; 
                // Change to 'GET' if you need. 
  url: "/",data: {},beforeSend: function(XMLHttpRequest)
  {
    //Upload progress
    XMLHttpRequest.upload.addEventListener("progress",function(evt){
      if (evt.lengthComputable) {  
        var percentComplete = evt.loaded / evt.total;
        //Do something with upload progress
      }
    },false); 

    //Download progress
    XMLHttpRequest.addEventListener("progress",function(evt){
      if (evt.lengthComputable) {  
        var percentComplete = evt.loaded / evt.total;
        //Do something with download progress
      }
    },false); 
  },success: function(data){
    // successful completion handler
  }
});

这里链接docs on XMLHttpRequest‘s progress event.

您可能还想看看jquery.ajax-progress plugin以避免自己动手.

笔记:

>某些旧版浏览器可能不支持progress事件.>要计算下载进度,您必须知道要下载的资源的大小,即服务器必须发送Content-length HTTP标头.如果未知大小,则无法计算进度.这就是progress事件的lengthComputable属性.

猜你在找的jQuery相关文章