Php DIV自动刷新

Php DIV自动刷新,php,ajax,html,Php,Ajax,Html,我尝试每5秒刷新一次div,但它不起作用,我有3个文件 index.php,其中包含: <html> <head> <script type="text/javascript" src="javascript/jquery-1.3.2.js" ></script> <script type="text/javascript" src="javascript/jav

我尝试每5秒刷新一次div,但它不起作用,我有3个文件

index.php,其中包含:

     <html>
        <head>  

            <script type="text/javascript" src="javascript/jquery-1.3.2.js" ></script>
            <script type="text/javascript" src="javascript/javascript.js" ></script>
            <script type="text/javascript">
                $(document).ready(function(){
                setInterval ("newmsg()", 5000);
                setInterval ("newpause()", 5000);
                }); 
            </script>
        </head>
        <body>
            <div id="msgs">
                <?php echo date("H:i:s");  ?>
            </div>
        </body>
    </html>
我有msgsprint.php,它包含

        function GetXmlHttpObject() {
        var xmlHttp = null;
        try {
             xmlHttp = new XMLHttpRequest();
             }
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
         }
         return xmlHttp;
    }

    function newmsg(){
        var request = GetXmlHttpObject();
        request.open("get", "msgsprint.php", true);
        request.send(null);
        request.onreadystatechange = function response() {
            if (request.readyState === 4) {
                if(request.responseText != "false"){
                    $('#msgs').html(request.responseText);
                }
            }
        }   

    }

    function newpause(){
        var request = GetXmlHttpObject();
        request.open("get", "newpauseprint.php", true);
        request.send(null);
        request.onreadystatechange = function response() {
            if (request.readyState === 4) {
                if(request.responseText != "false"){
                    $('#newpauselist').html(request.responseText);
                }
            }
        }   

    }
<?php
    echo 'ivan'; 
?>

任何人都可以告诉我我做错了什么。

您的代码中似乎没有任何错误,可能您没有从msgsprint.php获得有效的答案

下面是一个基于您的代码的、运行良好的

我建议你: -测试请求状态是否存在错误。 -您可以使用setTimeout来计划对newmsgs的下一次调用


这就是我在演示中所做的。

什么不起作用?你试过什么?您是否收到错误消息?仅供参考,在使用Ajax调用时,应避免使用setInterval。考虑到Ajax请求需要5秒钟以上的时间,您的调用将开始堆积。改为使用setTimeout,并在Ajax调用完成时将新的超时设置为5秒。通过这种方式,您可以确保它们不会stack.thx,没有错误,只是它不会刷新div。有两点,尽管我不确定其中任何一个是否真的会破坏它的请求。onreadystatechange应该在调用request.send之前声明,并且您应该将函数本身传递给setInterval,而不是字符串-setIntervalnewmsg,5000;相反@ChristofReliasson提出了一个非常有效的观点,即避免在ajax调用中使用setInterval,您应该在onreadystatechange处理程序中使用setTimeout。我猜你的问题是服务器返回false-你应该添加一个else块来处理这个问题。哦,等等,我知道问题是什么,这是一个语法错误:更改request.onreadystatechange=function response{to request.onreadystatechange=function的两个实例{删除单词response。您没有看到有关此操作的错误消息,这意味着您没有在浏览器中使用开发人员控制台,您可以通过按键盘上的F12键来访问该控制台。