关于网页计数器的一点小疑问

我在做一个网页计数器时遇到了一点问题,想请教大家:

我设想我的计数器的大致需要是:除了统计每天访问次数外,还要统计客户端环境的一些信息,如:操作系统平台,使用的浏览器,屏幕分辨率大小,Referrer,等。

大多数计数器都是采用客户端 javascript 脚本的方式来嵌入计数器网页的,如:

     <script language="javascript" src="counter.aspx?id=23"></script>

在 counter.aspx 中,我们则需要直接写入当前的数字;或者以拼图的方式将数字拆开,然后写入一串数字的图片。总而言之,这些都是服务端的事情了,比较简单了。

事实上,这样的情形中我们一般还需要将一些客户端信息,如:Referrer,屏幕分辨率大小等以某种方式(一般是 QueryString)传回服务端,如下:

     <script language="javascript">
         var tmp = "<scri" + "pt language='javascript' src='counter.aspx?"
                    + "id=23&referrer=" + document.referrer 
                    + "&screenwidth=" +
 screen.width + "'></scri" + "pt>";
        document.write(tmp);
     </script>

但我发现一个问题,我们无法记录到搜索引擎等所使用的 Crawler 的踪影,因为 Crawler 不会解析这样的脚本。然而,Crawler 对于我们来说太重要了,我不想舍弃对它们的跟踪。

那么另一种方案就是直接将计数器代码写入 Web Forms 中(或者间接地,做成 Control 再放入),这样在 Crawler 访问时,计数器肯定能够觉察到;但另一方面,我们无法统计客户端屏幕分辨率大小(这似乎是个小问题);还有,我们的计数器被 *.aspx 牢牢困住了,我们只能统计 *.aspx 页面了,连 *.htm 也无法统计了!

怎样才能兼顾二者呢?怎样才能既能察觉到 Crawler 的踪影,又能保证一定的灵活性呢?有谁可以给个思路呢?


注①:虽然在服务端用 Request.Referrer 可以返回一个 Referrer,但我们得到的是 counter.aspx 的 Referrer,也就是我们正在统计的目标页面。所以必须在我们统计的目标页面中用 document.referrer 取得。而在下面一种方案中,由于计数器直接包含在目标页面中,所以 Request.Referrer 就是我们要的。

posted on 2003-11-28 01:32  破宝  阅读(157)  评论(0编辑  收藏  举报

导航