2013-12-11 149 views
3

我需要強制div div背景圖像刷新,而我的ajax請求成功我的div背景圖像url不會更改,但圖像內容更改,而Ajax success.how我可以刷新背景URL。強制背景圖像重新加載

的JavaScript

$.ajax({ 
url: "editor/savemapimage.php", 
type:"POST", 
data:{imagevalue : urlimage}, 
success:function(data){$(".map_canvas").css("background-image","url("+data+")");}, 

上面的代碼,如果結果數據串的東西map.png所以這將是相同的,但我的PHP頁面更新圖像內容等都需要而圖像更新,每次更新這個網址。

+0

您可以編輯圖片的URL喜歡這裏: http://stackoverflow.com/a/2104998/3090180 – apo

回答

8

您可以添加一個唯一的ID,如圖像的URL的末尾:

http://yourdomain.jpg?random=1239308234 

如果ID是獨一無二的瀏覽器會認爲它是一個新的資源,並將重新加載圖像。

var randomId = new Date().getTime()); 
$.ajax({ 
    url: "editor/savemapimage.php", 
    type: "POST", 
    data: { 
    imagevalue: urlimage 
    }, 
    success: function (data) { 
    $(".map_canvas").css("background-image", "url(" + data + "?random=" + randomId + ")"); 
    }, 
0

您應該添加一些隨機查詢到您的背景圖像,並重新設置它

$.ajax({ 
    url: "editor/savemapimage.php", 
    type:"POST", 
    data:{imagevalue : urlimage}, 
    success:function(data){$(".map_canvas").css("background-image","url("+data+"?random="+ new Date().getTime()));}, 
0

對於使用Literally Canvas的人來說,您可能會遇到同樣的問題。 Chrome中肯定會出現這種情況。巴斯van Dijk的解決方案效果很好所以只需使用它像這樣:

$(document).ready(function() { 

    //background image (add random variable to stop caching) 
    var backgroundImage = new Image() 
    backgroundImage.src = "my-image.png?r=" + new Date().getTime(); 

    var lc = LC.init(
     document.getElementsByClassName('literallycanvasdiv')[0], 
     { 
      backgroundColor: 'whiteSmoke', 
      backgroundShapes: [LC.createShape('Image', {x: 10, y: 10, image: backgroundImage, scale: 1})] 
     } 
    ); 
});