Php 关于使用ajax

Php 关于使用ajax,php,ajax,Php,Ajax,我正在网页上显示一个文本文件的内容 此文件的内容由任何查看页面的用户编辑,我已经使用ajax写入文件并显示给当前用户,但是如果有任何用户同时浏览页面,他们必须重新编辑页面以查看新编辑的内容。 我想知道如何使用ajax使包含文件内容的部分保持不断更新,而不刷新页面 <script type='text/javascript'> function change(){ if (window.XMLHttpRequest) xhr=new XMLHttpRequest();

我正在网页上显示一个文本文件的内容 此文件的内容由任何查看页面的用户编辑,我已经使用ajax写入文件并显示给当前用户,但是如果有任何用户同时浏览页面,他们必须重新编辑页面以查看新编辑的内容。 我想知道如何使用ajax使包含文件内容的部分保持不断更新,而不刷新页面

<script type='text/javascript'>
function change(){

    if (window.XMLHttpRequest)  xhr=new XMLHttpRequest();
    else      xhr=new ActiveXObject("Microsoft.XMLHTTP"); //IE5

    xhr.onreadystatechange=function()
      {
        if (xhr.readyState==4 && xhr.status==200)
        {
            if(xhr.responseText=="empty") return;
            document.getElementById("space").innerHTML=xhr.responseText;
        }
     }
    var str=document.getElementById('msg').value;
    document.getElementById("msg").value="";    
    xhr.open("GET","response.php?q="+str,true);
    xhr.send();           
}
</script>

<center>
<div id='space'>nothing</div>
<input type='text' name='msg' id='msg'>
<input type='button' onClick='change()' value='Click'>
</center>

实现服务器推送效果的最简单方法是轮询

在您的情况下,您可以通过添加一条简单的Javascript语句来添加此功能:

window.onload = function()
{
    setInterval("change();", 5000);
};

此代码将调用更改;每5000毫秒

可以使用setInterval执行定期AJAX查询以检查更新。然后,如果需要,更新页面上的内容。

你可能会在14个问题后思考如何将源代码格式化为代码。或者@deceze他们永远不会学习,因为其他人总是为他们格式化。那么,请明确一点:@OdO Posts不会自动格式化自己。将代码缩进4个空格或选择所有代码,然后单击工具栏中的{}按钮。实际上,我希望在其他用户更新文件内容时,即当用户点击某个按钮时,视图会更新……我怎么做呢?因为这看起来有点像不断刷新页面。没有广泛实现的WebSocket,这是一种备用方法。尝试用Firebug打开Gmail。。。你不会喜欢你看到的。如果你对其他一些同样黑客的方法感兴趣,可以查找Comet或iframe reverse AJAX。我尝试过,但看起来有点像刷新,我的脚本实际上是一个简单的聊天脚本,当我尝试设置间隔时,它的行为类似于刷新,因此发送者无法在间隔通过时完成文本框中的写入。我还看到了一些关于使用后台页面传递数据并保持连续通信的内容。我自己从来没有试过,但似乎很有希望。