我正在处理一个提交内容并与内容合作的项目。详细/结果页面可立即用于提交的工作(作业排队等),但结果不一定准备就绪。
我尝试做的是动态加载(通过jQuery)结果,以两种不同的方式显示,但只调查服务器一个结果集,直到{ "status" : "success" }
出现在json中。然后仅轮询服务器以获取第二个内容表单。
以下是我目前正在做的(直接)在页面加载时拉入两个数据集。由于JS不是我的强项,我不确定我是如何在定时循环中进行异步调用的,直到' status'关键是成功',然后显示两个结果集
任何帮助/建议赞赏:)
$(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>" );
});
});
答案 0 :(得分:0)
我在How to call a function within $(document).ready from outside it
的帮助下弄明白了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(); });
似乎就像魅力一样......