我构建了一个 Web 应用程序,其中包含一个显示 html 页面内容的预览窗口。由于 html 页面不断更新,我需要预览窗口每 0.5 秒反射(reflect)一次这些变化。
除了预览窗口在刷新时闪烁之外,一切正常。这种情况只是偶尔发生,而且显得很脾气暴躁。大多数时候不会闪烁,并且 html 页面的更新非常流畅。
这是代码 - 任何人都可以对如何防止发生闪烁提出任何建议吗?
//Get the preview data and insert / refresh it in the #preview-fram div
function refreshinfo(){
var xmlhttp;
var id = $.urlParam('id');
var grid = $.urlParam('grid');
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("preview-frame").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://webhost:8888/subs-banner-generator/preview?id="+id+'&grid='+grid,true);
xmlhttp.send();
}
setInterval(refreshinfo, 500); //refresh the data every 0.5 secs
最佳答案
- 对于服务器来说 500 毫秒并不算多
- 不建议在 Ajax 中使用 setInterval
- 你标记了这个 jQuery,为什么不使用它?
像这样
function refreshinfo(){
var id = $.urlParam('id');
var grid = $.urlParam('grid');
var url = "http://webhost:8888/subs-banner-generator/preview?id="+id+'&grid='+grid;
$("#preview-frame").load(url,function() {
setTimeout(refreshinfo,500); // will load the page again 500ms after successful load
});
}
$(function() {
refreshinfo();
});
关于javascript - 使用 XMLHttpRequest 查看网页中的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280098/