2016-08-10 4 views
1

Я показываю модальное (загрузочное) диалоговое окно, когда пользователь нажимает на строку таблицы. Вот небольшой фрагмент кода, который я использую:удаление кэшированной информации из вызова ajax в модальном диалоговом окне

.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-сообщения предложили уничтожить модальные, но они не откроются снова, я верю. Есть ли какой-нибудь лучший подход, который я могу выполнить, чтобы убедиться, что я не вижу предыдущего содержимого в своем диалоговом окне? Я использую хром как мой браузер.

+0

как вы получите или получить объект JSON 'doc_contents'? – kolunar

+0

@kolunar Я получил его так: var doc_contents = data_.myContentList; ' – John

+0

вы уверены, что у вас есть определенная причина, использующая .'appappTo()' вместо использования .html() '? – kolunar

ответ

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(); 
+0

Awesome, это сработало. Это была проблема appendTo. – John

0

Из примера обеспечивает выше, это трудно понять, как используются объект обещания. Я не вижу, что вы используете объект data_. где находится набор переменных doc_contents? В пределах закрытия или за пределами перспективного обратного вызова?

Быстрый способ решить эту проблему - понять объем и задания. используйте Console.log/Вкладка «Сеть» в Chrome/или использовать контрольные точки.

или выполните следующие действия, чтобы увидеть все АЯКСЫ ответов

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

Также вы можете цепи вашего Jquery называют

$('#mydialog').modal("show").draggable(); 
Смежные вопросы