#ajax #flask #socket.io
Вопрос:
Я использовал socketio для длительного опроса, подобного этому
$(document).ready(function(){
var socket = io.connect('http://192.168.0.190:8080');
socket.on('connect',function(){
socket.on('server_response', function(msg) {
$('#groups').find('div[class*=alarm]').each(function(index, el) {
var test = $(this).attr("class").match(/alarm[w-]*b/);
$(this).removeClass(test)
$(this).addClass(msg.color_list[index])
console.log(index)
console.log($(this))
})
});
});
$('#testForm').on('submit', function(event) {
event.preventDefault()
var form_data = new FormData();
form_data.append('eqp-name', $("#eqp-name").val())
form_data.append('eqp-type', $("#select-group").val());
form_data.append('eqp-detail', $("#eqp-bio").val());
$.ajax({
type : 'POST',
url : "/add_card",
contentType: false,
cache: false,
processData: false,
data:form_data,
success: function(data) {
if (data.status =='nullpoint'){
$.alert('error');
return false;
}
$.alert({
title: 'success',
content: 'success',
onClose: () => window.location.reload(),
});
}
});
});
});
Однако я использую ajax для колбы, чтобы обновить базу данных, а затем получить данные по шаблону jinja. find
Метод внутри сокета не находит обновленное содержимое. Самое странное , что когда я нажимаю вручнуюF5, метод jQuery find
находит обновленное содержимое, но использование window.location.reload()
после публикации ajax этого не делает.
Я просмотрел очистку кэша или жесткое обновление браузера, но, похоже, это невозможно сделать с помощью jQuery? и я попробовал ajax stop
или complete:{}
, просто не получилось.