我正在一个需要提交并处理内容的项目。详细信息/结果页面可立即用于提交的工作(例如,作业已排队),但结果不一定要准备好。
我想做的是动态加载(通过jQuery)结果,该结果以两种不同的方式显示,但仅轮询服务器以获取一个结果集,直到{ "status" : "success" }
出现在json中为止。只有这样,才能轮询服务器以获取第二个内容表单。
下面是我目前正在做的(直接)在页面加载时提取两个数据集的操作。由于JS不是我的强项,因此我不确定如何在定时循环中进行异步调用,直到'status'键的值为'success',然后显示两个结果集
任何帮助/建议表示赞赏:)
$(document).ready(function()
{
// Pull in HTML Results
$.get( "/api/v1/web/analysis/{{jobID}}?html=true", function( data )
{
console.log(data);
$( "#results" ).html( data );
});
// Pull in raw JSON for this result report
$.get( "/api/v1/analysis/{{jobID}}", function( data )
{
console.log(data);
$("#JSONresults").html( "<pre>"+JSON.stringify(data, undefined, 8)+"</pre>" );
});
});
我在如何从$(document).ready外部调用函数的帮助下找到了答案
function getResults()
{
$.ajax(
{
url: "/api/v1/analysis/{{jobID}}",
dataType: 'json',
error: function(data)
{
// Do nothing / Terminate this function
},
success: function(data)
{
if (data.status == 'queued')
{
// Wait 1.5 seconds and poll again
setTimeout(function() { getResults(); }, 1500);
} else if (data.status == 'success')
{
// Update our HTML formatted results
$.get( "/api/v1/analysis/{{jobID}}?html=true", function( data )
{
console.log(data);
$( "#results" ).html( data );
});
// Update our JSON content
$("#JSONresults").html( "<pre>"+JSON.stringify(data, undefined, 8)+"</pre>" );
} else {
// Our status code wasn't right...
alert("A status code was returned that indicates an issue (JSON results say _not_ 'success' or 'queued')")
}
},
contentType: 'application/json'
});
}
getResults()
从内部$(document).ready(function(){ getResults(); });
进行呼叫似乎很吸引人:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句