如何进行AJAX调用来定期刷新页面的一部分


How can I make an AJAX call that periodically refreshes a part of the page?

我在一个依赖mysql数据库的聊天系统中工作。

在第一次加载页面开始时发送以下查询:

SELECT * FROM `Shoutbox` ORDER BY `Shoutbox`.`ID` ASC LIMIT 0 , 30

然后使用while循环将所有消息(包括用户名和日期)模制在一个div.中

while($array=mysql_fetch_array($dati)) {         
                    echo "<div class='tag_li $array[ID]'><span class='when'>$array[DateTime]</span><span class='linea mess'><span id='author'><a onclick='ajaxLoadContent(this)' link='profile.php?name=$array[User]'>$array[User]</a></span>: $array[Message]</span></div>";
                }

现在,我希望每隔一秒收到一个查询,然后用新消息(如果有的话)更新div的内容。

如何在一个范围内发送SQL查询?

我假设您正在使用javascript,并希望进行ajax调用。

从客户端上的计时器开始

window.setInterval("ajaxFunction()",milliseconds);

和ajax功能

function ajaxFunction(){
    var ajaxRequest;  // The variable that makes Ajax possible!
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var ajaxDisplay = document.getElementById('ajaxDiv');
            ajaxDisplay.innerHTML = ajaxDisplay.innerHTML + ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "ajax-example.php" , true);
    ajaxRequest.send(null); 
}

php部分

while($array=mysql_fetch_array($dati)) {         
                echo "<div class='tag_li $array[ID]'><span class='when'>$array[DateTime]</span><span class='linea mess'><span id='author'><a onclick='ajaxLoadContent(this)' link='profile.php?name=$array[User]'>$array[User]</a></span>: $array[Message]</span></div>";
            }

和html部分

<div id="ajaxDiv"></div>

这应该会让你知道它是如何完成的。