我正在尝试使用ajax来更新简单地检查数据库结果的视图
如果找到结果,我的html div将更新为该div中的
部分 如果没有找到结果,它会在一段时间后检查。
代码正在运行,没有if else部分
但客户端浏览器会在某一点崩溃,浏览器被冻结(似乎我将缓存更改为True,它运行正常,是吗?)
我的if else声明用于判断我是否应该再次更新。逻辑是如果我的html div
段我将停止更新。
<script>
function updateResults() {
$.ajax({
type: 'GET',
url: "/sResultsView",
cache: true,
success: function(html){
$("#resultsDiv").html(html);
}
});
window.setTimeout('updateResults()', 4000);
}
if($'#resultsDiv:not(:has(p))'){
updateResults();
}else {
return;
}
}
</script>
然而,它一直告诉我语法是错误的,否则,这是我第一次写ajax
有什么建议吗?我做对了吗?或者更好的想法?
非常感谢提前
答案 0 :(得分:2)
目前您正在创建一个无限循环(或将会是),而是在success
回调中安排检查,如下所示:
function updateResults() {
$.ajax({
type: 'GET',
url: "/sResultsView",
cache: true,
success: function(html){
$("#resultsDiv").html(html);
if($('#resultsDiv p').length == 0) //if not found, run again in 4 seconds
window.setTimeout(updateResults, 4000);
}
});
}
为了完整起见,您的语法错误在if
语句中缺失,在此处:
if($('#resultsDiv:not(:has(p))')){
^ ------- missing --------- ^