javascript - 使用 XMLHttpRequest 查看网页中的网页

标签 javascript jquery html ajax xmlhttprequest

我构建了一个 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

最佳答案

  1. 对于服务器来说 500 毫秒并不算多
  2. 不建议在 Ajax 中使用 setInterval
  3. 你标记了这个 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/

相关文章:

javascript - 如何在工具提示中包含类别数据

javascript - 使用 Javascript 在嵌套 FormView 中隐藏/显示控件

javascript - 为动态创建的表行添加 onclick 方法

javascript - 无法使用 $.couch.login 授权 couchdb

jquery - 如何在 td 中更改单词的颜色(jquery)

Jquery 自动完成动态文本框问题

javascript - Canvas Spark 线

html - 嵌套的 Flexbox 拉伸(stretch)图像

html背景图片方向右转

html - 在angularjs中获取用户定义的属性值