Rainbow的站点流量统计分析
1. WhosLoggedOn模块和Monitoring模块实现对站点的统计分析。
站点统计分析的实现方法为:在用户请求页面的时候,在后台数据库保存当前的访问信息,包括所访问的页面、用户信息、访问时间、客户端信息等等。WhosLoggedOn模块比较简单,仅是统计当前在线的用户,包括匿名用户的数量和注册用户列表。Monitoring模块属于后台管理模块,可以显示访问的详细信息,也可以显示页面访问统计信息,用户访问统计信息等。
2.具体实现过程
数据层
数据库表结构:
存储过程:rb_AddMonitoringEntry 记录访问信息
rb_GetLoggedOnUsers 取得在线用户统计信息,匿名用户的数量、注册用户数量和列表
rb_GetMonitoringEntries 根据输入参数不同,取得各种统计信息,包括访问的详细信息、页面访问统计信息、用户访问统计信息、每天访问统计信息、按浏览器类型分类统计(这个统计有的意思,不知出于什么考虑)等等。
数据访问层 Rainbow.Framework.Security.Monitoring 类实现记录访问日志信息。
Rainbow.Framework.Monitoring.Utility 类实现统计信息的获取。
程序有3个地方记录访问日志,一是业务逻辑层的Rainbow.Framework.Security.PortalSecurity类中,在用户登录和注销时分别记日志。二是在表示层在DesktopDefault.aspx.cs中页面加载时,记录访问日志信息。
表示层
WhosLoggedOn模块和Monitoring模块实现对站点的统计分析。WhosLoggedOn模块使用了缓存技术,因此显示的内容与实际可能有些偏差,精确度取决于缓存时间的长短。
3.存在的问题
目前版本的存在不少问题,WhosLoggedOn显示信息不准确,Monitoring模块根本无法运行。
查看源代码,找到几个原因:
1)当前代码没有保存匿名用户的访问信息,只是保存了注册用户访问信息(一个字,晕;两个字,真晕;再多,真TMD的晕)。从.net 1.x版本迁移过来,把这个功能给丢了。
2)当前的版本安全机制采用ASP.net 2.0 内置的安全模型,与.net 1.x版差别很大。rb_GetLoggedOnUsers和rb_GetMonitoringEntries两个存储过程都还使用原先的用户表,根本无法运行。
3) 访问信息记录不全,仅仅是记录对菜单里对应的页面的访问(即在Rainbow框架结构中讨论的"网站由页面组成、页面由模块组成"中所指的页面),对于那些查看、编辑页面(即从SecurePage类继承的页面)都没有记录日志。
4)Monitoring模块的多语言支持不好,仅做了部分多语言支持。
目前新版本没出来,要想运行,只好自己修改了。
1) 对于匿名用户的访问,通过Request.AnonymousID取得ID,同样记录访问日志信息。
2) 访问日志的采集原先在DesktopDefault.aspx.cs中,现在移到 Rainbow.Framework.Web.UI.Page类中。因为SecurePage也是从Page类中继承的,这样可以保证在访问查看、编辑页面时,也可以记录日志。不过这样也存在一些问题,对于查看、编辑页面的访问,其统计归于模块所在的页面。
3) 至于存储过程的错误,肯定要改的。
4) Monitoring模块的多语言支持,版面美化,就慢慢来吧。
分享到:
相关推荐
在Matlab 2019a版本中,可以利用特定的函数和编程技巧来创建色彩丰富的Rainbow色图,这种色图常用于显示数据的连续变化,特别是在科学图像处理和数据分析中。 首先,我们要理解`rainbow`颜色映射。Rainbow色图由红...
"Rainbow"是一个机器学习工具包,其名称可能源于它所涵盖的各种算法和技术的多样性,就像彩虹包含多种颜色一样。这个工具包可能是为了方便数据科学家和机器学习工程师整合不同的学习算法,进行模型训练和评估。从...
"Rainbow Brackets"是IntelliJ IDEA的一个插件,它为编程语言中的括号提供了颜色编码,使得在复杂的代码结构中更容易追踪和理解括号的配对关系。 标题"intellij-rainbow-brackets-5.28.zip"表明这是Rainbow ...
Rainbow A fork of Processing for Android Guide What can I do with Rainbow? With Rainbow you can easily draw graphics (interactive or not) in your Android application. How to do it? Import it on...
华为Rainbow hConvertor OpenStack-VRM迁移工具操作指导书.pdf 华为Rainbow hConvertor OpenStack-VRM迁移工具操作指导书.pdf是华为技术有限公司发布的一份操作指导书,旨在指导华为工程师使用Rainbow hConvertor...
其中,"Rainbow Brackets"是一个非常实用的插件,特别是在处理复杂代码结构时,能够显著提高代码可读性和编辑效率。标题中的"intellij-rainbow-brackets-6.10.zip"即表示该插件的一个特定版本,版本号为6.10。 ...
RainBow是一个基于websocket的支持多种QOS的消息转发服务器及客户端SDK。使用RainBow可以让您业务逻辑与链接管理完美的分离开来,且可以继续使用您最熟悉的方式(HTTP)来接入业务逻辑。以下是概览图,绿色部份为...
"Rainbow Brackets"是IntelliJ IDEA中的一个流行插件,它的最新版本为5.35,这个压缩包“intellij-rainbow-brackets-5.35.zip”正是包含了这个插件的安装文件。 "Rainbow Brackets"插件的核心功能是将代码中的括号...
2023.3.6 版本,找到idea插件安装目录,将此插件里面的intellij-rainbow-brackets-2023.3.6.jar 替换为附件中的jar Rainbowify各种类型的括号(圆形、波浪形、方形、角度) Rainbowify更多语言的变量&使用颜色...
unity 插件 Rainbow Folders 2(彩色文件夹)
Rainbow MetaTrader 5脚本是一个专为MT5交易平台设计的技术分析工具,它允许交易者在同一个图表上同时查看六十条不同周期的移动平均线,这些均线呈现出颜色梯度变化,帮助用户更直观地理解市场趋势和波动。...
"Rainbow.2.0(补充的文件)"这个标题暗示了这可能是一个软件更新或扩展包,专门设计用于补充之前发布的"Rainbow.2.0"版本。Rainbow.2.0可能是一个软件系统、框架或者应用,其核心功能在前一版本的基础上得到了增强...
Dapper.Rainbow是Dapper库的一个扩展,专注于提供对特定数据库系统的支持,这里是Oracle数据库。Dapper本身是一个轻量级、高效的ORM(对象关系映射)工具,它旨在简化.NET应用程序与数据库之间的数据操作。在.NET...
rainbow1.3
彩虹字典Completed Rainbow Tables
Rainbow SDK 是一款专为开发者设计的工具包,主要用于构建和集成通信功能到Web应用中。这个SDK使得开发者能够轻松地在自己的应用中添加语音、视频通话,以及丰富的即时通讯功能,如消息传递、文件共享等。从提供的...
由于上传大小限制,所以只好把文件分成两部分(有一部分是免费的... 使用说明:把两个压缩包都解压后,只需将“Rainbow2.0(补充的文件).rar”里的那两个文件复制到名叫“Rainbow2.0”的文件夹里里,即可使用。
"Rainbow Folders" 是一个实用工具,它允许用户自定义电脑中文件夹的颜色,以实现更加个性化和高效的文件管理。这个程序的核心功能是通过改变文件夹图标背景颜色,使得在众多文件夹中能快速识别出特定的文件夹,这...
"Rainbow鼠标指针"是一个主题性软件,它主要用于改变计算机操作系统的默认鼠标指针样式,使其呈现出彩虹般的色彩效果。这种视觉上的变化不仅能够增添桌面的个性化元素,还可以为用户带来更有趣的交互体验。在了解这...