前段时间发了两篇Flash全站的技术应用文章后,有部分网友提出说,叫我写篇文章,阐述如何实现IE的前进后退功能。但是这个并没有在我的计划之中,也没有研究过。找了一堆关于堆栈历史记录的东西,很多都用了AJAX,看着头晕,并且拷贝人家的代码来运行也实现不了。接着,还拿了2AD的JS来研究,总没发现跟历史记录有关的东西,而且历史记录也没保存到我的机器里。就算了,先把这文章写出来。但是我在测试这个统计的时候,发现我的IE也能前进,后退,只是FLASH没有作出响应而已。
后来,经过Digi的提点以后,竟然发现,原来这个跟前进后退是同一原理。于是就先把这个统计的写出来,再顺着把前进,后退的方法告诉大家。
————————
一开始,想给自己的网站做个流量统计,于是搜索教程,结果发现,教程没多少,那些免费代码却一大堆。于是就注册一个试试,发现人家的统计内容很完整(特别是对那些流量低的网站),感觉自己写也没必要了。于是用了个 提供的统计代码。
这个统计代码跟其它统计网站的代码我看大同小异,先注册了一个帐号,然后网站会给你生成一段统计代码,你把那段代码放入你的网页,当且仅当打开或者刷新该页,这个代码就会给你刷一次浏览量,如果有新IP登录,则再刷一个IP。
所以,如果是FLASH全站,并且浏览过程不发生页面跳转的话,那么,浏览量(PV)就只刷了一次。另一方面,你也不知道访客看了你的哪些页面。曾在站长交流大厅里问过这问题,人家都回答说Flash无法统计。
自己经过冥思苦想,终于在3秒钟内想出办法了。用框架或者IFRAME,在Flash里通过getURL刷新别的框架或者iframe不就行了吗?于是就有了思路。
这次的制作可以用回我上一篇文章的演示文档:
http://space./bbs/thread-306024-1-1.html
如果你之前已经做了的话,就可以接下来做了,否则,你就先按上面的文章把内容做出来。
大家看下它那里的说明,稍微理解下它的统计原理。
接下来,我们就要把统计代码安放在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");
这样就可以看到访客浏览那些页面比较多了,从而发挥了统计代码应有的功能