【问题标题】:$ajax call is pending during download file at chrome/safari not in IE/firefox$ajax 调用在 chrome/safari 下载文件期间未在 IE/firefox 中
【发布时间】:2013-01-07 02:21:15
【问题描述】:

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

【问题讨论】:

    标签: javascript ajax jquery asynchronous


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 2013-01-04
      • 2012-08-29
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多