php页面,每隔一段时间局部刷新。
用于论坛,所以想找个效率高的,不会让服务器符合不过来的代码。要用到ajax或者ifreame吗?...
用于论坛,所以想找个效率高的,不会让服务器符合不过来的代码。要用到ajax或者ifreame吗?
展开
1个回答
展开全部
减少网络负荷的方法,就是只有在有新内容的时候才刷新,没有新内容就不刷新,一般方法是,在需要刷新的页面用隐藏iframe加载检测页面,例如:
<iframe width=0 height=0 src=check_new.php></iframe>
而检测文件check_new.php要做的有两件事情,一是定时刷新,二是检测是否更新,一般结构如下:
<html>
<head><META HTTP-EQUIV=REFRESH CONTENT=60></head>
<body>
<?php
....检测是否有新内容的代码.....
if (更新) echo '<script>parent.location.href=parent.location.href;</script>';
?>
</body></html>
服务器端减少数据库流量的方法,分两个步骤,一是修改数据库的语句在成功修改后,设置一个标志文件,设置方法下面这样既可:
fclose(fopen('db_updated.log','w'));
道理是建立一个空文件,文件日期为数据库最后建立日期。
现在我们给check_new.php增加一个参数,用来记录检测页面最后获取数据的时间,那么只要文件日期比那个日期新就是有更新,这需要修改两个地方,一是主页面的iframe代码修改如下:
echo '<iframe width=0 height=0 src="check_new.php?last='.time().'"></iframe>';
二是检测文件check_new.phpPHP部分代码如下:
<?php
if (filemtime('db_updated.log')>$_GET['last']) echo '<script>parent.location.href=parent.location.href;</script>';
?>
不知道你是否明白?
<iframe width=0 height=0 src=check_new.php></iframe>
而检测文件check_new.php要做的有两件事情,一是定时刷新,二是检测是否更新,一般结构如下:
<html>
<head><META HTTP-EQUIV=REFRESH CONTENT=60></head>
<body>
<?php
....检测是否有新内容的代码.....
if (更新) echo '<script>parent.location.href=parent.location.href;</script>';
?>
</body></html>
服务器端减少数据库流量的方法,分两个步骤,一是修改数据库的语句在成功修改后,设置一个标志文件,设置方法下面这样既可:
fclose(fopen('db_updated.log','w'));
道理是建立一个空文件,文件日期为数据库最后建立日期。
现在我们给check_new.php增加一个参数,用来记录检测页面最后获取数据的时间,那么只要文件日期比那个日期新就是有更新,这需要修改两个地方,一是主页面的iframe代码修改如下:
echo '<iframe width=0 height=0 src="check_new.php?last='.time().'"></iframe>';
二是检测文件check_new.phpPHP部分代码如下:
<?php
if (filemtime('db_updated.log')>$_GET['last']) echo '<script>parent.location.href=parent.location.href;</script>';
?>
不知道你是否明白?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询