Tag: polling

针对JSON响应的jQuery AJAX轮询,基于AJAX结果或JSON内容的处理

我是一个新手到中级的JavaScript / jQuery程序员,所以具体/可执行的例子将非常感激。 我的项目需要使用AJAX来轮询一个URL,该URL返回包含要添加到DOM的内容的JSON,或者消息{“status”:“pending”} ,指示后端仍在使用内容生成JSON响应。 这个想法是,对URL的第一个请求触发后端开始build立一个JSON响应(然后被caching),随后的调用检查这个JSON是否准备好(在这种情况下提供)。 在我的脚本中,我需要以15秒的间隔轮询这个URL,最长1:30分钟,然后执行以下操作: 如果AJAX请求导致错误,请终止脚本。 如果AJAX请求成功,并且JSON内容包含{“status”:“pending”} ,请继续轮询。 如果AJAX请求成功,并且JSON内容包含可用内容(即{“status”:“pending”}以外的任何有效响应),则显示该内容,停止轮询并终止脚本。 我已经尝试了一些有限的方法,但是我感觉它们比所需要的更加混乱。 下面是我成功使用的一个骨架函数,一次只能创build一个AJAX请求,如果从JSON响应中获得可用的内容,就可以完成它的工作: // make the AJAX request function ajax_request() { $.ajax({ url: JSON_URL, // JSON_URL is a global variable dataType: 'json', error: function(xhr_data) { // terminate the script }, success: function(xhr_data) { if (xhr_data.status == 'pending') { // continue polling } else { success(xhr_data); […]