2011-08-31 54 views
0

將圖像緩存在瀏覽器中後,通過請求圖像檢查Internet連接不起作用。經過一兩次,這不工作,因爲圖像存儲在瀏覽器的緩存中,所以有沒有解決方案?或者我需要檢查連接是否可用? window.navigator.online不可靠。所以尋找其他有趣和可靠的解決方案。將圖像緩存在瀏覽器中後,通過請求圖像來檢查Internet連接不起作用

+0

你需要它有多可靠?當他們從網絡上斷開連接時,是否需要預測未來2秒的用戶行爲? (連接超出了您的控制範圍 - 在大多數情況下無法知道答案,因爲答案可能會改變,然後才能採取行動) –

回答

0

檢查互聯網連接的完美解決方案是給一個Ajax調用服務器的虛擬頁面,並作出這樣的假網頁的應用程序緩存清單文件中的網絡部分項,以便它可能無法得到緩存在瀏覽器中,否則它會從瀏覽器獲取該文件,並顯示爲在線狀態,即使您處於離線狀態。

3

使用高速緩衝存儲器查詢字符串。查詢字符串強制瀏覽器檢查新服務器的新映像。

yourImageObj.src = "newImage.png?time=" + new Date().getTime(); 
+0

感謝您的回覆 – deepmoteria

1

使用XMLHttpRequest對象和POST協議。 POST請求不會被緩存。但是,這隻有在圖像(或任何其他資源)從頁面加載(XMLHttpRequest限制)的相同域加載。

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "url_for_image_file", true); 
xhr.onreadystatechange = function() { 
    if(xhr.readyState === 4) 
     if(xhr.status!==200) { 
     // no image loaded 
     alert("fail connect to server"); 
     } 
     else { 
     alert("connection success"); 
     } 
}; 
xhr.send(null); 
+0

它還假定POST請求以相同方式處理作爲GET請求,這可能並非如此。 –

+0

@Damien_The_Unbeliever。在我用IIS和Apache的測試中,這個工作。但你是對的。 –

+0

感謝您的回覆,我會盡力實施它。 – deepmoteria

相關問題