帝国论坛帝国网站管理系统交流区帝国CMS使用交流利用js调用的方式实现首页及栏目页的定期自动刷新功能 【本版专题贴子】  
 1/8     1 2 3 4 5 6 7 8 ›› ›|
主题:利用js调用的方式实现首页及栏目页的定期自动刷新功能 [加入收藏夹]   

wongkelly
用户头衔:书生

精华贴   :0
发贴数   :8
经验值   :24
注册时间:2009-02-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
利用js调用的方式实现首页及栏目页的定期自动刷新功能

缘起:
  小弟自07年接手维护朋友的一个使用帝国CMS系统的网站以来,成为帝国的忠实用户已有2个年头。个人也用试用过不少PHP的CMS,相比而言帝国CMS确实更为方便易用、稳定、快速、可扩展性强,故在此先对辛勤的开发者们表示敬佩和感谢!
  由于朋友的网站首页和栏目页都有点击数排行,则必须常常刷新,而使用自带的自动刷新功能必须要开着后台,即便在服务器上开着,也常会因为Windows Update自动更新后重起服务器导致自动刷新中断。故该问题一直困扰着小弟,近发现帝国CMS开源了,Yeah!,便有了把自动刷新功能通过JS调用的方式嵌入到静态HTML页面中的想法。想不到分析了下原来很容易就能显现,故特来与各位帝国同胞们分享,但愿有朋友能用得上:)

思路:
  在生成的静态HTML页面中,通过js调用的方式调用一个php页面,检测超过设定的时间间隔,便将自身静态HTML刷新一下。我将最后刷新时间存在mysql的MEMORY表中,以提高性能。由于时间问题,代码今不再详解。当然,这等简单代码,打开看看就都明白了。程序已打包在附件中。

1、安装方法:
将“autoRehtml”复制到e下,浏览/e/autoRehtml/install.php,当提示“数据库建立成功!”时表示已安装成功,此时intall.php已可删除。

2、调用方法:
在首页模板及栏目模板的底部加入这样的js调用:
<script language="JavaScript" src="[!--news.url--]e/autoRehtml/?classid=[!--self.classid--]"></script>
即可实现定期首页及栏目页的自动刷新。

3、刷新间隔的配置:
用文本编辑器编辑“e/autoRehtml/index.php”,修改$auto_reIndex_interval和$auto_reList_interval的值即可调整重新刷新首页或栏目页的间隔秒数。

PS: 由于个人水平有限,代码写的很弱,各位高人别笑我哈。



上传以下附件:
[下载 *.rar](文件大小:1.60 KB,下载次数:521)



宽容网www.krong.net
戒赌博网www.jiedu.org
2009-02-14 01:04:57 已设置保密 顶部 回复 引用 报告 编辑 删除

adcba
用户头衔:秀才

精华贴   :0
发贴数   :172
经验值   :495
注册时间:2008-11-01
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

好用不




2009-02-14 01:11:25 已设置保密 顶部 回复 引用 报告 编辑 删除

Donvee
用户头衔:进士

精华贴   :0
发贴数   :468
经验值   :2083
注册时间:2008-03-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

好东西啊!



中国财税网
出纳岗位职责
QQ : 823026 MSN:VRCFO@Live.cn
2009-02-14 01:14:15 已设置保密 顶部 回复 引用 报告 编辑 删除

wongkelly
用户头衔:书生

精华贴   :0
发贴数   :8
经验值   :24
注册时间:2009-02-12
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

不会吧,原来高手们都是半夜上网的啊,学习中。。。。

忘记说了,小弟已在帝国CMS的4.6和5.0、5.1版下测试使用正常。现已有如下网站正在使用该功能:
www.krong.net
www.jiedu.org
www.shoukang.org

代码贴出来算了:
创建MEMORY表的代码,文件名e/autoRehtml/install.php
运行一次即可。


<?php
// Version: 2009-2-14
// Author: wongkelly@163.com

require("../class/connect.php");
include("../class/db_sql.php");
include("../class/config.php");
include("../class/class.php");
include("../class/functions.php");
include("../class/t_functions.php");

$link=db_connect();
$empire=new mysqlquery();

$empire->query("CREATE TABLE IF NOT EXISTS `phome_auto_rehtml` (".
                                  "`classid` smallint(6) NOT NULL DEFAULT '0',".
                                  "`update_time` int(11) DEFAULT NULL,".
                                  "PRIMARY KEY (`classid`)".
                                ") ENGINE=MEMORY;");

db_close();
$empire=null;

echo "数据库建立成功!";
?>



自动刷新的代码,文件名e/autoRehtml/index.php
用js方式调用,根据classid刷新指定栏目,如无classid则刷新首页


<?php
// Version: 2009-2-14
// Author: wongkelly@163.com

require("../class/connect.php");
include("../class/db_sql.php");
include("../class/config.php");
include("../class/class.php");
include("../class/functions.php");
include("../class/t_functions.php");

// -------------- <config> -------------

//重新刷新首页间隔秒数
$auto_reIndex_interval=600;

//重新刷新栏目页间隔秒数
$auto_reList_interval=600;

// -------------- </config> -------------

$link=db_connect();
$empire=new mysqlquery();

$classid=(int)$_GET['classid'];

// check first
$r=$empire->fetch1("select count(*) from {$dbtbpre}auto_rehtml where classid=$classid");
if ($r[0]==0)
        $empire->query1("insert into {$dbtbpre}auto_rehtml (classid, update_time) values($classid, 0)");

// check interval
$r=$empire->fetch1("select unix_timestamp()-update_time from {$dbtbpre}auto_rehtml where classid=$classid");
echo "//".$r[0];

$update_time_sql="update {$dbtbpre}auto_rehtml set update_time=unix_timestamp() where classid=$classid";
if ($classid==0)         //reIndex
{
        if ($r[0]>$auto_reIndex_interval)
        {
                echo "reIndex";
                $empire->query1($update_time_sql);
                ReIndex();
        }
}
else //reList
{
        if ($r[0]>$auto_reList_interval)
        {
                echo "reList";
                $empire->query1($update_time_sql);
                ReListHtml($classid, 0);
        }
}
db_close();
$empire=null;
?>


[该贴被修改 1 次,最后修改时间 2009-02-14 01:21:17 ]


宽容网www.krong.net
戒赌博网www.jiedu.org
2009-02-14 01:19:33 已设置保密 顶部 回复 引用 报告 编辑 删除

sun1534
用户头衔:秀才

精华贴   :0
发贴数   :29
经验值   :321
注册时间:2008-11-17
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

楼主好心  我贡献你几个IP  希望别糊我们哦



短信群发
2009-02-14 01:40:13 已设置保密 顶部 回复 引用 报告 编辑 删除

ddepx
用户头衔:举人

精华贴   :0
发贴数   :307
经验值   :882
注册时间:2007-05-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持下,以后试试




2009-02-14 01:40:44 已设置保密 顶部 回复 引用 报告 编辑 删除

wongkelly
用户头衔:书生

精华贴   :0
发贴数   :8
经验值   :24
注册时间:2009-02-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

原帖由 sun1534 于 2009-02-14 01:40:13 发表
楼主好心  我贡献你几个IP  希望别糊我们哦


IP?先谢谢了,怎么用啊?
有没有糊人不妨自己体验一下,呵呵。



宽容网www.krong.net
戒赌博网www.jiedu.org
2009-02-14 14:31:32 已设置保密 顶部 回复 引用 报告 编辑 删除

over123
用户头衔:举人

精华贴   :0
发贴数   :106
经验值   :676
注册时间:2006-10-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

支持




2009-02-14 17:34:12 已设置保密 顶部 回复 引用 报告 编辑 删除

nppcb
用户头衔:举人

精华贴   :0
发贴数   :250
经验值   :723
注册时间:2007-05-30
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]





2009-02-15 01:07:37 已设置保密 顶部 回复 引用 报告 编辑 删除

csp6353963
用户头衔:秀才

精华贴   :0
发贴数   :69
经验值   :450
注册时间:2008-06-03
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

在本地调试不成功




2009-02-15 13:44:56 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/8     1 2 3 4 5 6 7 8 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1