2013-01-23 38 views
1

我正在下载带有ajax调用的1mb文件并检查下载时间。 下面是代码

var start = new Date(); 
$(document).ready(function() {  
    $.ajax ({ 
     url: 'https://www.example.com/dummyFile1024', 
     crossDomain: true, 
     dataType: "application/octet-stream", 
     cache: false, 
     async: false,  
     success : function() 
     { 
      var asd=(new Date() - start) 
      alert(asd) 

     },  
     error : function(jqxhr, status, ex) {} 
    }) 
}) 

在Chrome和Safari它正在等待装载完整的文件不能在IE和Firefox。当我检查与开发人员工具网络。在获取http/1.1 200连接后,在Firefox上显示连接到服务器的时间。在Chrome开发者工具中,在连接建立并加载完整文件并提醒该值之后,它处于挂起状态。我怎样才能使这个作品适用于所有浏览器? P.S.我试着用另一种文件类型jpeg,发生了同样的事情。 Firefox和IE显示连接时间到服务器铬和Safari等待,直到整个图片加载。

回答

1

首先,you can't use synchronous requests on crossDomain communication

“跨域请求和数据类型:‘JSONP’请求不支持 同步操作请注意,同步请求可能会暂时 锁定浏览器,禁用而任何行动。该请求处于活动状态。“

有可能IE/firefox忽略“async:false”参数。

其次,DL完成后,使用“完成”功能让所有浏览器执行代码。