Javascript 使用XMLHttpRequest查看网页中的网页

Javascript 使用XMLHttpRequest查看网页中的网页,javascript,jquery,html,ajax,xmlhttprequest,Javascript,Jquery,Html,Ajax,Xmlhttprequest,我构建了一个web应用程序,其中包含一个预览窗口,显示html页面的内容。由于html页面不断更新,我需要预览窗口每0.5秒反映一次这些更改 除了预览窗口在刷新时闪烁外,其他一切正常。这只是偶尔发生的,而且似乎非常喜怒无常。大多数情况下,它不会闪烁,而且html页面的更新非常流畅 下面是代码-有人能对如何防止闪烁的发生提出建议吗 //Get the preview data and insert / refresh it in the #preview-fram div func

我构建了一个web应用程序,其中包含一个预览窗口,显示html页面的内容。由于html页面不断更新,我需要预览窗口每0.5秒反映一次这些更改

除了预览窗口在刷新时闪烁外,其他一切正常。这只是偶尔发生的,而且似乎非常喜怒无常。大多数情况下,它不会闪烁,而且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();
    });
    

    谢谢你。我刚刚实现了你的代码,它确实有效。你怎么能确定它会解决我的闪烁问题呢?它肯定会使它变得不那么突出,因为如果加载和渲染时间超过500毫秒,你的代码会中断渲染。我会在接下来的几天里测试它,如果闪烁消失,我会将你的答案标记为正确!