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 中的完整文件。当我检查开发人员工具网络时。在 Firefox 建立 http/1.1 200 连接并显示到服务器的连接时间。在 chrome 开发人员工具中,它在建立连接并加载完整文件并警告值后处于挂起状态。我怎样才能使它适用于所有浏览器?PS 我尝试过使用另一种文件类型 jpeg 并且发生了同样的事情。firefox 和 ie 只显示了与服务器 chrome 的连接时间,而 safari 则一直等到整个图片加载完毕。

4

1 回答 1

1

首先,您不能在跨域通信上使用同步请求

“跨域请求和dataType:“jsonp”请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,在请求处于活动状态时禁用任何操作。”

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

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

于 2013-01-23T15:17:08.943 回答