2011-11-29 37 views
0

我剛剛與Jquery握手。動態生成的內容重新加載不變

問題:我希望用戶能夠通過在fancybox中打開細節進行編輯來更新動態生成列表中的信息(因此我使用.live和click)。除了用戶打開fancybox然後更新信息(它會正常發佈並使用下面的內容更新數據庫),然後關閉並重新打開fancybox窗口,動態生成的內容將不會被重新加載。我猜測瀏覽器正在緩存頁面。如何在重新打開facnybox窗口時強制更新信息?

另外,如果您可以告知下面的代碼是否可以改進。

$(document).ready(function() { 
$("#UpdateLink").live('click', function() { 
    $('#txtHint1').fadeIn('fast').html('<img src="ajax-loader.gif" />'); 
    var formData = $('#UpdateLinkForm').serialize(); 
     $.ajax({ 
     type: "POST", 
     url: "Link-Updater.asp", 
     data: formData, 
     success: function(d) {     
     $('#txtHint1').empty().html(d).delay(800).fadeOut('slow'); 
     } 
    }); 
}); 

});

謝謝。

回答

0

你可以嘗試禁用AJAX調用緩存:

// Disable caching of AJAX responses 
$.ajaxSetup ({ 
    cache: false 
}); 
+0

太棒了,就是這樣。謝謝。 – Bocker

0

如果上面的緩存選項失敗,第二個方法是隨機字符串參數附加到URL。我建議使用當前時間戳,因此它看起來像這樣:

Link-Updater.asp?rand=123456789 

該字符串本身相對容易建立在JavaScript中。