在网页上显示txt文件,每秒更新一次

duk*_*vin 7 html javascript ajax jquery

我有点在黑暗中射击; 我不知道如何做到这一点所以一些指针和/或指向有用教程的链接会很棒:

我有一个网站,我想显示一个文本文件(服务器日志).可能是嵌入式的.问题是,只要服务器中发生事件,该文件就会更新(通常超过半秒).我怎样才能使网页实时显示文件,这意味着显示文件的实时源?

我的猜测是它会使用javascript和AJAX,但我对两者的了解非常有限.任何指针和帮助将不胜感激:)

Lee*_*eeR 8

使用jQuery,您可以执行以下操作

setInterval(function() {
    $('#element').load('/url/to/file');
}, 1000);
Run Code Online (Sandbox Code Playgroud)

element每隔1秒刷新带有ID 和文件内容的div


小智 8

我的回答使用PHP和Ajax,虽然改为ASP或任何其他语言都不会很难.
在头上

    <script type="text/javascript">

        function Ajax()
        {
            var
                $http,
                $self = arguments.callee;

            if (window.XMLHttpRequest) {
                $http = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                try {
                    $http = new ActiveXObject('Msxml2.XMLHTTP');
                } catch(e) {
                    $http = new ActiveXObject('Microsoft.XMLHTTP');
                }
            }

            if ($http) {
                $http.onreadystatechange = function()
                {
                    if (/4|^complete$/.test($http.readyState)) {
                        document.getElementById('ReloadThis').innerHTML = $http.responseText;
                        setTimeout(function(){$self();}, 1000);
                    }
                };
                $http.open('GET', 'loadtxt.php' + '?' + new Date().getTime(), true);
                $http.send(null);
            }

        }

    </script>
Run Code Online (Sandbox Code Playgroud)

在身体里

    <script type="text/javascript">
        setTimeout(function() {Ajax();}, 1000);
    </script>
    <div id="ReloadThis">Default text</div>

</body>
Run Code Online (Sandbox Code Playgroud)

现在使用loadtxt.php读取文本文件的值

    <?php
        $file = "error.txt";
        $f = fopen($file, "r");
        while ( $line = fgets($f, 1000) ) {
            print $line;
        }
    ?>
Run Code Online (Sandbox Code Playgroud)