簡體   English   中英

jQuery提交后如何強制硬刷新(Internet Explorer)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM