Javascript 带有更新URL的JSON响应的AJAX请求
我有以下代码在页面加载时执行其工作,但我需要将其转换为在页面加载时每5秒连续发送一次请求。每次页面加载时,请求的URL都将用JSON响应变量data.update\u hash更新,替换当前的验证代码。我更愿意坚持使用$.getJSON,因为我计划在将来扩展它 当前:Javascript 带有更新URL的JSON响应的AJAX请求,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下代码在页面加载时执行其工作,但我需要将其转换为在页面加载时每5秒连续发送一次请求。每次页面加载时,请求的URL都将用JSON响应变量data.update\u hash更新,替换当前的验证代码。我更愿意坚持使用$.getJSON,因为我计划在将来扩展它 当前: $('#update_status').replaceWith($('<p id="update_status">'+data.update_hash+'</p>')); $('#update_statu
$('#update_status').replaceWith($('<p id="update_status">'+data.update_hash+'</p>'));
$('#update_status')。替换为($('“+data.update_hash+”
);
只用于调试和验证请求是否通过。通常不会更新任何内容,只更新下一个JSON请求的URL
背景资料:
- 使用无脂框架
- JQuery 1.10.1
<check if="{{ @ajax_update }}"><script type="text/javascript"> //<![CDATA[ $(document).ready(function() { $.getJSON( '/ajax/update-status/{{ @verification_code }}', { format: 'json' }) .done(function( data ) { if ( data.status == 'continue' ) { $('#update_status').replaceWith($('<p id="update_status">'+data.update_hash+'</p>')); } else { $('#update_status').replaceWith($('<p id="update_status">'+data.message+'</p>')); } }); }); //]]> </script></check>
//
.done
处理程序中设置递归调用,如下所示:
function getToken(url) {
$.getJSON( url, {
format: 'json'
})
.done(function( data ) {
if ( data.status == 'continue' ) {
$('#update_status').replaceWith($('<p id="update_status">'+data.update_hash+'</p>'));
//calculate the new URL and call the function recursively after 5 seconds
var newURL = '/ajax/update-status/' + data.update_hash;
setTimeout(function (){
getToken(newURL);
}, 5000);
}
else
{
$('#update_status').replaceWith($('<p id="update_status">'+data.message+'</p>'));
}
});
}
$(document).ready(function() {
getToken('/ajax/update-status/{{ @verification_code }}');
}