从模式对话框中的ajax调用中删除缓存的信息

时间:2016-08-10 04:58:08

标签: javascript jquery ajax twitter-bootstrap caching

当用户点击表格的一行时,我正在显示模态(引导程序)对话框。这是我正在使用的一小段代码:

.done (function (data_, textStatus_, jqXHR_) {
        $('<pre/>').html(doc_contents[1].text_content).appendTo('#employee_document_contents');
        $('#mydialog').modal("show"); 
        $('#mydialog').draggable(); 

});

以上代码抓取JSON值并显示在对话框中。我正面临缓存相关问题我相信我的ajax调用。该对话框的先前内容未被删除,我必须从浏览器中清除缓存并再次单击特定行以查看我想看到的内容。我尝试使用cache : false,这样做添加了日期基于URL的时间戳,但我仍然在对话框中看到旧内容。一些SO帖子建议摧毁模态,但我不相信它会再打开。是否有更好的方法可以确保我在对话框中看不到以前的内容?我使用chrome作为浏览器。

2 个答案:

答案 0 :(得分:1)

我认为这不是缓存问题,而是DOM操作问题。 您应该替换#employee_document_contents内的内容而不是appendTo。

在回调函数中尝试此代码:

var content = $('<pre />').html(doc_contents[1].text_content);
$('#employee_document_contents').html(content); // Here you replace the content
$('#mydialog').modal("show"); 
$('#mydialog').draggable();

答案 1 :(得分:0)

从上面提供的示例中,很难理解promise对象的使用方式。我没有看到你使用data_对象。 doc_contents变量集在哪里?在有希望的回调的封​​闭之内或之外?

解决此问题的快捷方法是了解您的范围和作业。使用Chrome中的 Console.log / 网络标签 /或使用断点

或执行以下操作以查看所有ajax响应

$( document ).ajaxSuccess(function( event, xhr, settings ) {
  console.log(xhr.responseText);
});

你也可以链接你的jQuery调用

$('#mydialog').modal("show").draggable();