我尝试延迟POST的GET请求。基本上,使用此代码,我的后端服务器在计算POST请求之前将响应作为JSON数组发送。我希望我的服务器首先处理POST请求,然后在延迟5秒后调用GET请求。
(For你的信息,这段代码把一个HTML表单的内容放到Django数据库中,然后从这个数据库中请求所有的内容,并在一个HTML页面上显示。这就是问题所在,因为当用户提交表单时,他将从数据库中获得所有的内容,而不是他最后一次发送的内容,因为数据库的“截图”是在服务器提交之前拍摄的)。
$(document).on('submit','#post-form',function(e){
clearInterval(loop)
e.preventDefault();
$.ajax({
type:'POST',
url:'/send',
data:{
room_name:$('#room_name').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
success: function(data){
//alert(data)
}
});
document.getElementById('room_name').value = ''
$(document).ready(function com() {
function imgMarkup(model) {
if (model.media) {//mediasrc
return `<img class='imgchat' src=${window.location.origin}/static/${model.mediasrc}.png>`
}
return '';
}
function csvMarkup(model) {
if (model.excel) {
return `<p><a href="${window.location.origin}/static/${model.mediasrc}" class="dl-csv">[Download]</a></p>`
}
return '';
}
function botCheck(model) {
if (model.bot) {
return 'FinanceUIp.png'
}
return 'Y.png';
}
loop = setTimeout(setInterval(function() {
$.ajax({
type: 'GET',
url: "/trafic",
success: function check(response) {
//CODE WORKSPACE //
}
//CODE checkview //
},
error: function(response){
//setTimeout(clearInterval(loop),10000)
}
});
}, 1000), 5000)
})
});
我试过setTimeout函数,但是它不起作用。就像根本没有延迟一样。
1条答案
按热度按时间q8l4jmvw1#
下面是一个简单的示例片段(您可以运行它),您可以根据自己的用例进行调整。
不过作为一个建议,使用Promises可以保存很多麻烦,因为它提供了操作之间的简单链接。