2013-01-23 69 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完成後,使用「完成」功能讓所有瀏覽器執行代碼。