初衷是想在一个页面中,只有一小部分需要每隔5秒刷新一次,实现的功能就是每隔5秒读取一个日志,来获取最新的信息。
在php中,刷新整个页面的方法有很多,但局部刷新貌似不大可能(如果这个观点有误,请高手指正)。于是想到了用javascript局部刷新,再调用php的方法。
实现过程如下:
首先是javascript脚本:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <HTML>
- <HEAD>
- <TITLE> Test </TITLE>
- <META NAME="Generator" CONTENT="EditPlus">
- </HEAD>
- <div id="place">
- abcde
- </div>
- <script>
- var userName;
- var passWord;
- var xmlHttpRequest;
- //XmlHttpRequest对象
- function createXmlHttpRequest(){
- if(window.ActiveXObject){ //如果是IE
- return new ActiveXObject("Microsoft.XMLHTTP");
- }else if(window.XMLHttpRequest){ //非IE浏览器
- return new XMLHttpRequest();
- }
- }
- function onLogin(){
- var url ="http://localhost/sns/js_php.php";
- //1.创建XMLHttpRequest组建
- xmlHttpRequest = createXmlHttpRequest();
- //2.设置回调函数
- xmlHttpRequest.onreadystatechange = HuiDiaoFun;
- //3.初始化XMLHttpRequest组建
- xmlHttpRequest.open("post",url,true);
- //4.发送请求
- xmlHttpRequest.send(null);
- }
- //回调函数
- function HuiDiaoFun(){
- if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
- var b = xmlHttpRequest.responseText;
- //alert(b);
- document.getElementById("place").innerHTML = b;
- return b;
- }
- }
- var i=1;
- function changeImg(){
- createXmlHttpRequest();
- onLogin();
- var b = HuiDiaoFun();
- //document.getElementById("tabs").style.background="url('pil"+i+".jpg')";
- i++;
- if(i>5){
- i=1;
- }
- setTimeout("changeImg();","5000");
- }
- </script>
- <BODY onLoad="changeImg();">
- <table style="background:url('pil1.jpg')" width="600" height="400" id="tabs">
- <tr>
- <td></td>
- </tr>
- </table>
- </BODY>
- </HTML>