<script>
$(document).ready(function()
{
setInterval(doAjaxStuff, 500);
});
function doAjaxStuff()
{
/* $.ajaxSetup ({ cache: false }); */
$.ajax
({
url: "../getStatus/"+id,
dataType: 'json',
success: function(json)
{
if(json.status == "ACTIVE")
{
$('#ajaxStatus').html(jason.status);
}
});
}
</script>
//I get refreshed and cause flickering
<p id= ajaxStatus > Refresh Me</p>
答案 0 :(得分:2)
有一个更容易使用的jquery函数来从页面加载文本。 您可以用$(“#ajaxStatus”)替换整个.ajax调用.load(“../ getStatus /”+ id)
不确定是否会停止闪烁,但至少应使程序更清洁。
答案 1 :(得分:2)
我在使用jquery load();
$('#div').load('/ajax.php', data);
在我加载到#div中的ajax.php
我再次包含了jquery lib和我的样式表。所以新内容得到了新的风格和jquery功能吗?
发现新内容选择了父css和js函数!
底线:
在新加载的div中包含相同的css作为父级导致闪烁,因为html元素再次被设置样式。
答案 2 :(得分:1)
尝试添加检查,以便仅在值发生更改时进行更新。
if(json.status == "ACTIVE" && $('#ajaxStatus').html() !== "ACTIVE")
{
$('#ajaxStatus').html(jason.status);
}
答案 3 :(得分:1)
我会说500太快了。你必须记住,即使ajax调用没有完成,间隔也将继续并请求信息。我的建议是将setInterval更改为setTimeout并在成功时重新初始化超时,或者将间隔调高到1500-2000。你最好用超时
答案 4 :(得分:1)
使用此:
$( '#ajaxStatus' ).replaceWith( jason.status );