日期:2013-12-20  浏览次数:20903 次

Flash全站的技术使用系列
(一)AS+JS的Flash网站无刷新定位技术 
(二)Flash网站的SEO(搜索引擎优化
(三)Flash网站的流量统计 (本文)
(四)让Flash网站具有IE前进后退的功用

前言

前段时间发了两篇Flash全站的技术使用文章后,有部分网友提出说,叫我写篇文章,阐述如何实现IE的前进后退功用。但是这个并没有在我的计划之中,也没有研讨过。找了一堆关于堆栈历史记录的东西,很多都用了AJAX,看着头晕,并且拷贝人家的代码来运转也实现不了。接着,还拿了2AD的JS来研讨,总没发现跟历史记录有关的东西,而且历史记录也没保存到我的机器里。就算了,先把这文章写出来。但是我在测试这个统计的时候,发现我的IE也能前进,后退,只是FLASH没有作出呼应而已。
后来,经过 Digi 的提点当前,竟然发现,原来这个跟前进后退是同一原理。于是就先把这个统计的写出来,再顺着把前进,后退的方法通知大家。

一开始,想给本人的网站做个流量统计,于是搜索教程,结果发现,教程没多少,那些免费代码却一大堆。于是就注册一个试试,发现人家的统计内容很完整(特别是对那些流量低的网站),感觉本人写也没必要了。于是用了个http://www.51.la/提供的统计代码。
这个统计代码跟其它统计网站的代码我看大同小异,先注册了一个帐号,然后网站会给你生成一段统计代码,你把那段代码放入你的网页,当且仅当打开或者刷新该页,这个代码就会给你刷一次浏览量,如果有新IP登录,则再刷一个IP。
所以,如果是FLASH全站,并且浏览过程不发生页面跳转的话,那么,浏览量(PV)就只刷了一次。另一方面,你也不知道访客看了你的哪些页面。曾在站长交流大厅里问过这问题,人家都回答说Flash无法统计。
本人经过冥思苦想,终于在3秒钟内想出办法了。用框架或者IFRAME,在Flash里通过getURL刷新别的框架或者iframe不就行了吗?于是就有了思路。

效果预览:
http://hbro.cincn.com/cindex.htm

你点了每一则旧事,统计代码就刷新一次,请观察形状栏的变化,但是Flash就没刷新。

PS:我这团体是比较不厚道的,有时,比如如今这个,放了统计代码的页面理论上是会显示一个统计代码的图标,并且链接到提供统计服务的网站,而我就偏偏把它隐藏,不给它做广告。也正由于如此,前段时间遭到了一些BUG的影响,不能统计来源与搜索引擎的访问量,使得我这个访问量本来就不高的网站,日IP算出来只要30左右了。

如果这个看得不是很清楚,就看这个简单的演示文档:
http://hbro.cincn.com/hbro/cours ... cs/index_flash.html
你点了每一则旧事,统计代码就刷新一次,但是Flash就没刷新。

这次的制造可以用回我上一篇文章的演示文档:
http://www.blueidea.com/tech/multimedia/2006/3967.asp

如果你之前曾经做了的话,就可以接下来做了,否则,你就先按上面的文章把内容做出来。

首先,本站的流量统计是结合免费统计代码的,所以大家先去申请一个统计帐号。我申请的地址是:http://www.51.la/
大家看下它那里的说明,稍微理解下它的统计原理。

接下来,我们就要把统计代码安放在index_flash.html里头了。但是,如果直接放在这个html文件里头,就非要刷新页面才能刷第二次PV。因此,我就用我上面所说的iframe办法。所以,在当前的html文件里头的</body>标签加上:

<iframe noscroll border="0" src="statistics.html" width="80" height="80" name="stat" id="stat"></iframe>

新建一个HTML文档,名为statistics.html,里头置入统计代码。

在常规HTML页面里头,是网页打开的时候会统计一次PV,因此,在FLASH里模仿这一过程的话,就让在HTML页面被加载到FLASH的时候(此时触发onLoad或者onData事件)刷新iframe里头的statistics.html。于是,打开上次完成的index_flash.fla文件,在onData的函数里头追加:
getURL("statistics.html","stat")//这样就可以刷新iframe以达到统计的目的,但是又不刷新Flash。

此时,刷PV的任务曾经完成。
然而,我用的统计代码,是可以获取浏览者看到哪些页面的,对访问量低的网站,像我那个,这方面的信息就提供得特别的详细。但是如今,都是清一色的statistics.html,看不到到底看到了哪个页面,难道要一个页面配一个统计代码?答案能否定的。既然以前能通过参数来识别地址,这回也可以用啊。于是,getURL那句可以改为:

getURL("statistics.html?"+href, "stat");

这样就可以看到访客浏览那些页面比较多了,从而发挥了统计代码应有的功用。