場景:門戶網站項目中,使用了UEditor編輯器編輯推送到前台的文章
問題:背景修改一篇文章後,傳回清單,然後重新編輯剛剛修改的文章,結果發現顯示的是修改之前的内容,前台看推送的文章是修改了的,FF、Chrome浏覽器下無此問題,IE浏覽器有(傳回清單跟進入文章修改頁,浏覽器URL沒改變,内容是通過ajax請求局部更新的)。
開始以為是UEditor在IE浏覽器下的緩存問題,然而并沒有在網上搜尋到相關的問題。在重新檢閱代碼的時候,突然發現可能是IE浏覽器緩存了UEditor請求文章内容的ajax請求結果,才導緻文章内容沒有更新,結果還真是,是以在這裡記錄一下。
加載文章内容的js代碼如下,添加設定紅色字型禁止浏覽器緩存即可:
//對編輯器的操作最好在編輯器ready之後再做
editor.addListener('ready', function() {
var id = '${content.id}';
$.ajax({
url : "/xxxxx/xxxxx/getContent",
contentType: "application/json;charset=utf-8",
data:{id:id},
dataType : 'json',
cache:false,
ifModified:true,
success : function(data) {
data.content && editor.setContent(data.content);
}
});
});