none
统计某个页面访问量等信息,比较好的方法是什么 RRS feed

  • 问题

  • 我首先想到的是在该页面上嵌入语句,当打开该页面时就读取客户端信息,将有关信息存到数据库中;但是有时很多网页不能修改,而且不同的页面有时分布在不同的服务器上;这样我想获取相关信息,有没有比较好的方法呢?
    2010年6月1日 6:56

答案

全部回复

  • 不能嵌入的话,你可以使用Global的Begin_Request事件,
    【孟子E章】
    • 已标记为答案 KeFang Chen 2010年6月3日 2:08
    • 取消答案标记 ahking 2010年6月3日 23:40
    • 已标记为答案 KeFang Chen 2010年6月7日 8:24
    2010年6月1日 8:17
    版主
  • 可否详细点;如果嵌入的话怎么做?

    2010年6月1日 9:55
  • 你好,在Global文件中添加事件:

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
             //访问Request对象,获取客户信息。
        }

     


    邹俊才
    • 已标记为答案 KeFang Chen 2010年6月3日 2:08
    • 取消答案标记 ahking 2010年6月3日 23:40
    • 已标记为答案 KeFang Chen 2010年6月7日 8:24
    2010年6月2日 16:02
    版主
  • 关键是想做个通用的,如果多个网页都用iframe的形式插入该页面,如果这些网页同时打开,会不会出现有的访问量没有统计上的问题啊?
    2010年6月3日 23:41
  • 有很多方式,早期有很多在页面里添加<script src=''>的方式来做,你可以搜索下网页计数器,有很多开源的,另外google好像也有

    2010年6月4日 0:41
  • 现在比较常用的就是嵌入脚本这种方式了。

    百度也有,按照下面的网址试试。

    http://tongji.baidu.com/hm-web/welcome/login


    Microsoft Online Community Support
    2010年6月4日 1:18
  • 我想用一个程序统计很多网页的信息,不会有问题吧;我的方法是在页面的page_load方法中,使用以下代码:

     protected void Page_Load(object sender, EventArgs e)
            {
                Response.Write(Request.Url.ToString());
                DAL.InsertData(Request.ServerVariables["REMOTE_ADDR"], Request.Url.ToString());
            }

    即每打开一次就添加一条记录到数据库中,这种方法可行么;这种方法和用global.asax方法有什么区别

    还有用该程序显示不同网页的在线人数可以实现么?

    2010年6月4日 2:18
  • 在global中做这一步表示只要有对该网站的请求那么就相当于一次,是对整个网站而言的,你这种是对某个页面而言的。

    我觉得要么在global中做这一项操作,要么使用第三方提供的功能,如我上面的那个连接。

    至于你说的显示不同网页的在线人数,肯定是可以实现的,关键是有什么意义。


    Microsoft Online Community Support
    2010年6月4日 2:42
  • 由于是在局域网内使用,所以不能使用第三方功能,而且需求也不完全一致

    为了统计各网页信息,需要将我做的网页嵌入到他们的网页中,否则无法统计他们的访问信息吧?不过这样使不使用global是否都一样了呢?

     

    2010年6月4日 2:50
  • 根据你的需要了。

    如果你一定要统计每个页面的流量和在线人数的话,就得采用你的那种方式了。

    如果每次都要写入数据库,这也太麻烦了,而且增加开销,可以考虑每页一个静态变量的方式。


    Microsoft Online Community Support
    2010年6月4日 2:57
  • 可否详细点,用静态变量是否能及时反映访问量呢?
    2010年6月4日 6:11
  • 静态变量的生存周期和cache类似。

    你只要在页面后台代码中声明一个这样的变量并赋初值0,然后每次在有人请求这个页面的时候加1.

    然后在page_LOAD方法中初次加载的时候加1.

     

     


    Microsoft Online Community Support
    2010年6月4日 6:19
  • 可这是个通用的页面啊,不能给每个页面设置一个静态变量吧,而且不仅是访问量,还有访问者ip,访问时间等信息
    2010年6月4日 6:43
  • 你要是想每个页面都进行统计那似乎只有这样,我觉得没有什么更好的办法。
    Microsoft Online Community Support
    2010年6月4日 6:54
  • 在数据写入时是否可以采用缓存技术,一定时间后再往里写;但是我不知道具体的方法是什么
    2010年6月4日 7:23
  • 你好,

    你要缓存是否每个页面都要缓存呢,如果是那和使用静态变量没有什么很大的区别,反而不如使用静态变量方便。

     


    Microsoft Online Community Support
    2010年6月4日 7:32
  • 我的意思是不是可以先将数据写到dataset中,隔一段时间再写到数据库中

    2010年6月4日 7:46
  • 理解,但是你的dataset要缓存吧,那这么多页面是不是每个页面都要dataset,或者是多个datatable之类的。

    我觉得没有什么好的办法。


    Microsoft Online Community Support
    2010年6月4日 7:54
  • 也是,每个页面都会创建一个dataset在服务器,对吧,而且,我使用<iframe>的方式,感觉能明显影响原来网页速度,有什么办法啊?

    2010年6月4日 8:06
  • 你为什么要每个页面的流量都要统计?
    Microsoft Online Community Support
    2010年6月4日 8:46
  • 有的是想统计某个页面,有的是统计某个网站,但是总得把代码嵌入到某个网页上吧,这样还是对被嵌入的网页有所影响吧

    2010年6月4日 12:03
  • 用脚本的方式<script src=".....aspx">的方式嵌入网页,结果出现错误,请问是怎么回事?
    2010年6月6日 23:44
  • 报什么错?

    另外你得确定你的网站内的脚本能访问外网,否则估计不行。


    Microsoft Online Community Support
    2010年6月7日 1:40
  • 脚本能用.aspx文件么,当时报错我就改成iframe了
    2010年6月7日 2:36
  • 什么意思?

    javascript脚本一般都支持的。


    Microsoft Online Community Support
    2010年6月7日 2:40
  • 什么意思?

    javascript脚本一般都支持的。


    Microsoft Online Community Support

    src指向一个aspx文件啊
    2010年6月7日 3:06
  • 脚本能用.aspx文件么,当时报错我就改成iframe了


    上面这句什么意思?

    如果说是aspx文件中能否使用javascript,当然能使用了。

    否则我就不知道什么意思了。


    Microsoft Online Community Support
    2010年6月7日 3:09
  • 消息: 语法错误
    行: 1
    字符: 1
    代码: 0
    URI: http://****/count/count.aspx?webtitle=****

     

    我是指这句,<script src="http://****/count/count.aspx?webtitle=****"></script>用src嵌入aspx文件有问题么?

    count.aspx是.net 4的程序,母页面是.net 1.1的程序

    2010年6月7日 3:26
  • 这种方式没见过。

    你是使用哪个服务商提供的流量统计?

    一般他们都会告诉你一步步的详细过程。


    Microsoft Online Community Support
    2010年6月7日 3:52
  • 我自己做统计程序啊,怎么越说越乱套了
    2010年6月7日 6:04
  • 不好意思,我以为你是自己嵌入第三方提供给你的脚本。

    另外你上面这种方式我从没见过,建议你要么在pageload中做,要么如上面的版主的建议在Application_BeginRequest做。

     


    Microsoft Online Community Support
    2010年6月7日 6:46
  • 我知道这两种方式,现在想知道用什么样的嵌入方式,对被嵌入的网页影响小,我试着嵌入几个网页,他们打开的速度明显变慢了
    2010年6月7日 6:54
  • 百度统计嵌入的好像是js文件,不知具体实现方式会是怎样?
    2010年6月7日 7:00
  • 基本上是利用脚本在load的时候向某个页面或者service之类的发送请求以实现统计。

    它给你的代码就是一个脚本文件的引用。

    因为要请求其它的资源,所以可能会有点影响。具体有多大影响我没测试过。


    Microsoft Online Community Support
    2010年6月7日 7:09
  • “基本上是利用脚本在load的时候向某个页面或者service之类的发送请求以实现统计。”

    怎样发送请求可以详细说下么?

    2010年6月7日 7:11
  • 具体实现情况不太清楚。

    比如说你可以自己写个webservice,然后你通过脚本在页面加载的时候请求该webserivce,并把相应的参数等传进去以进行统计。

    有点类似ajax,大致的实现就是这样。


    Microsoft Online Community Support
    2010年6月7日 7:17
  • 如果是在global文件中执行相关数据操作,该怎样嵌入网页呢?我msn是ahking2000@msn.com,在线聊聊好吧
    2010年6月7日 7:30