Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在内容更新时自动刷新网页_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 仅在内容更新时自动刷新网页

Javascript 仅在内容更新时自动刷新网页,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我在我的网站上创建了一个网页,每1-60分钟更新一次内容(随机/不同),首先我使用以下工具自动刷新网页: <meta http-equiv="refresh" content="30" > 然而,这是非常烦人的滚动时,只是一般使用的网页 我考虑在单独的网页上使用iframe,如下所示: <iframe src="output.html" width="2500" height="10000" frameborder="0" allowfullscreen></

我在我的网站上创建了一个网页,每1-60分钟更新一次内容(随机/不同),首先我使用以下工具自动刷新网页:

<meta http-equiv="refresh" content="30" >

然而,这是非常烦人的滚动时,只是一般使用的网页

我考虑在单独的网页上使用iframe,如下所示:

<iframe src="output.html" width="2500" height="10000" frameborder="0" allowfullscreen></iframe>

但是,如果不刷新(如果我删除meta标记),这又会带来更多问题,并且我的原始网页高度会根据页面上的数据量而变化

我正在寻找一些建议/代码帮助,以获得仅在内容更新时刷新主网页的方法。(建议的解决方案是否使用HTML、PHP或任何其他语言并不重要)

如有任何建议或建设性意见,将不胜感激

提前感谢
-海弗莱克斯

编辑:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="5" >
<title>data data data data data</title>
<style type="text/css">
<!--
@import url("style.css");
-->
</style>
</head>
<body>
<table id="gradle" summary="main">
    <thead>
        <tr>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data Rank</th>
            <th scope="col">data Odds</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">AV10</th>
            <th scope="col">data Rank</th>
            <th scope="col">data</th>
            <th scope="col">data Rank</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">Age</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data 14 Day</th>
            <th scope="col">data CSR</th>
            <th scope="col">data TSR</th>
            <th scope="col">data</th>
            <th scope="col">data 14 Day</th>
            <th scope="col">data CSR</th>
            <th scope="col">data TSR</th>
            <th scope="col">data</th>
            <th scope="col">data data</th>
            <th scope="col">data data</th>
            <th scope="col">data data</th>
            <th scope="col">data data</th>
            <th scope="col">data data</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
            <th scope="col">data</th>
        </tr>
    </thead>
    <tbody>
        <tr><td>data</td><td>data</td><td>data data</td><td>data</td><td>data</td><td>5f 212y</td><td><div align="left">2</div></td><td>117.88</td><td>1</td><td>117.88</td><td>1</td><td>-1</td><td>&nbsp;</td><td>2</td><td>22</td><td>data</td><td>14</td><td>data</td><td>data</td><td>Tdata</td><td>6</td><td>data</td><td>135.0%</td><td>data</td><td>555.0%</td><td>0.0%</td><td>10.0%</td><td>2</td><td>data</td><td>data</td><td>&#163;45552.43</td><td></td><td>data</td><td>data</td><tr>
     </tbody>
     </table>
</body>
</html>

数据数据
数据
数据
数据
数据等级
数据概率
数据
数据
AV10
数据等级
数据
数据等级
数据
数据
年龄
数据
数据
数据14天
数据CSR
数据TSR
数据
数据14天
数据CSR
数据TSR
数据
数据数据
数据数据
数据数据
数据数据
数据数据
数据
数据
数据
数据
数据
Data5F 212Y21117.881117.881-1 222Data14 DatatData6Data135.0%data555.0%0.0%10.0%2datadata£;45552.43datadata
感谢下面的一篇帖子,我得到的最接近的信息是:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
    update_content()
    $(document).ready(function (e)
    {
        var refresher = setInterval("update_content();", 250);
    })

    function update_content()
    {
        $.ajax(
        {
            type: "GET",
            url: "output.html",
            timeout: 10000,
            cache: false,
        })
            .done(function (page_html)
            {
                var newDoc = document.documentElement.innerHTML;
                if (page_html != newDoc)
                {
                    alert("LOADED");
                    var newDoc = document.open("text/html", "replace");
                    newDoc.write(page_html);
                    newDoc.close();

                }
            });
    }
</script>

更新内容()
$(文档).ready(函数(e)
{
var refresher=setInterval(“更新内容();”,250);
})
函数更新_内容()
{
$.ajax(
{
键入:“获取”,
url:“output.html”,
超时:10000,
cache:false,
})
.done(函数(第页)
{
var newDoc=document.documentElement.innerHTML;
如果(第页html!=newDoc)
{
警报(“已加载”);
var newDoc=document.open(“text/html”、“replace”);
newDoc.write(page_html);
newDoc.close();
}
});
}

一个好的解决方案是使用javascript并以设定的时间间隔进行ajax调用。然后用响应中的新内容更新任何元素。这样,您就不必处理令人讨厌的刷新。

您必须替换页面的路径。应该每30秒重写一次文档。这是一个有点黑客的方法,但如果你仍然使用元刷新-它是光年更好。试试看。jQuery库的脚本只是从Google存储库中提取出来的

$(document).ready(function(e) {
    var refresher = setInterval("update_content();",30000); // 30 seconds
})

function update_content(){

    $.ajax({
      type: "GET",
      url: "index.php", // post it back to itself - use relative path or consistent www. or non-www. to avoid cross domain security issues
      cache: false, // be sure not to cache results
    })
      .done(function( page_html ) {
        alert("LOADED");
    var newDoc = document.open("text/html", "replace");
    newDoc.write(page_html);
    newDoc.close();

    });   

}

你的问题很常见。你有没有研究过类似twitter的提要更新是如何工作的?。你必须做如下事情

var interval = function() {

    setTimeout(function() {

        $.ajax({

            // Ajax options goes here
            success : function(data) {
                // Process Data
                // Generate HTML
                // Insert Generated HTML whereever you want in document
                interval() //Initiate next fetch
            }
        })

    }, 1000 // Interval time
    );
};
注意:这里我使用的是jQueryAjax


希望这会给你一个想法

主网页只是一些简单的html页面,有一个充满内容的表格。添加了我的代码示例。我不知道如何编写ajax/javascript调用来实现这一点。@我建议查看Hyflex及其$.ajax()函数,以帮助您对服务器进行ajax调用。您可以使用客户端库吗?喜欢正如你所说,它非常适合我的要求。我已经看过了,但无法从中获得任何效果,最接近我需要的是韦伯斯特代码,它几乎满足了我的需要。它真的适合你吗
newDoc
删除doctype声明和html标记…我尝试根据自己的需要调整它,但没有正常工作:/See my original post。另外,我应该提到我的html表相当大,例如,如果我将更新设置为1000(1秒),那么浏览器的延迟会非常严重。由于表的大小如此之大,是否有可能在每个表块之间循环并更新有什么不同的表块?(某些线路可能会被拆除)这有多可靠?我需要在浏览器中每分钟刷新一次图像,以监控工业过程。我需要知道这将不仅仅是一段时间的工作,然后在没有警告的情况下失败。这是有效的,但会使页面在更新时闪烁。有什么办法可以修复吗?@RedClover在刷新之前验证接收到的数据中的内容是否有变化,如果有变化,刷新,如果没有,就什么都不要做,我猜我尝试了其他人的代码,并试图对其进行一些调整,但没有正常工作,我尝试过你的,我的尝试更糟。