关于GJJ网址程序的自动排行是如何实现的
想要GJJ的自动排名功更新功能的人啊,注意听啊,我大致说下思路。
来路流量统计。其实只需要一个文件就可以。相应的数据库根据你的情况增加1到2个表,不同功能的表。
在需要统计来路并记录来路的页面,加上你的代码,一般为IFRAME或者IMG,宽高都为0隐藏统计。
如何获得来路?
一种办法,Request.ServerVariables("HTTP_REFERRER"),再程序里获得,此方法不适合IFRAME方法,如果你IFRAME你的统计页面,获得的会是你自己的站的来路。
第二种办法:用JS,document.referrer,把获得的这个值当作参数传递给你的统计页面。统计页面获得了这个参数再进一步的处理。
以上是获得来路数据,来路地址,比如从我的站http://www.zfhu.com/blog/post/116.html点到你的站上,你应该获得来路地址是“http://www.zfhu.com/blog/post/116.html”
当你获得了这个地址,然后进一步的处理,获得来路地址的域名,象这个应该获得成“www.zfhu.com”或者“zfhu.com”,根据你的系统情况决定。
你是做网址站的,里边如果有http://www.zfhu.com/这个网址登记的话,我象应该还有一个单独的字段记录域名,而不仅仅是记录访问地址。记录域名的字段记录的内容就是“www.zfhu.com”
现在,上边你从来路地址获得了“www.zfhu.com”这个字符了,跟你的数据库系统里对比,发现这个记录了,然后就执行记录此次来访的数据。怎么记录方法根据自己的情况,决定你要记录哪些详细情况。
我写的仿GJJ来路流量自动排行网址导航系统里,这一部分功能, 是参考阿江统计系统里的办法。
即判断来路网址统计,是否是新的一天,是新的一天就创建24小时的记录,然后更新哪个小时来的PV和IP。
当然可以不这么记录,只是简单的记录时间和IP,甚至你只记录来访次数。
GJJ的那个近5分钟来路多少多少。我就是这么记录的。
数据库表设计,ID,AddTime
有一个来路,就记录下网站ID和来访时间。
取数据的时候用AddTime做查询条件,ID作为分组,就可以计算出最近5分钟内的来访人数了。
关于自动排行。如果是动态的程序,就不用说了。着重说下生成HTML静态文件的情况。
一种方法就是用服务器端定时执行你的生成HTML的程序。比如计划任务,MSSQL数据库里的作业。
第二种方法就是变通的由用户访问触发的,是伪自动生成。
在你的首页啊,列表页啊之类的加上触发代码。有来访的就检查上次生成时间。没超过指定的时间间隔就不生成,超过了就执行重新生成。
至于怎么判断上次生成文件的时间呢?
目前网上流传的仿GJJ的ASP+ACCESS的程序,只是在首页里加了判断代码,并且是由TXT文件读取的。不建议这种方法,访问量大了,会导致频繁的FSO读写检查。效率不高。
第二中方法就是用缓存,Application变量储存上次生成HTML的时间。这样避免FSO操作,效率提高。又不占用很多系统资源。
写程序的人,应该明白怎么实现上边那个功能了吧。