[英]Hard refresh and XMLHttpRequest caching in Internet Explorer/Firefox
[英]How to force a hard refresh after jQuery submit (Internet Explorer)
我正在嘗試將圖片上傳到服務器。 上傳完成后,頁面將自動刷新。 在FF,Chrome等環境中一切正常,但在IE中,新頁面不會使用新照片進行更新。 此行為是設計使然 : http : //support.microsoft.com/kb/237885
有沒有辦法在jQuery.submit之后強制進行硬刷新?
您可以將您的網絡服務器設置為針對該特定圖像發出不緩存的標頭。 但這將影響每個客戶的每個請求,因此並不理想。
最好的解決方案是更改資源的URL。 使用JavaScript或服務器上。 將查詢字符串添加到URL將足以強制刷新...例如,更改:
/my_image.jpg
至
/my_image.jpg?version=2
要生成數字,可以使用時間戳記(JavaScript中為(new Date()).getTimestamp()
)或隨機數( Math.random() * 1000000
)。
完整的JavaScript解決方案是在要刷新的圖像中添加一個類(例如force-reload
),然后將src
用作data-
property屬性;
<img class="force-reload" data-src="/my_image.jpg"/>
然后在jQuery中:
$(document).ready(function () {
var now = (new Date()).getTime();
$('img.force-reload').prop('src', function () {
return $(this).data('src') + "?" + now;
});
});
將帶有時間戳的查詢字符串添加到圖像網址,如下所示:
<img src="/path/to/image.jpg?1234567890"/>
這將強制清除所有瀏覽器緩存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.