Web应用中的数据存储与会话状态管理
1. 数据存储的性能与资源考量
在Web应用中,数据存储的范围和方式会对性能和资源产生重要影响。
1.1 不存储在应用程序范围的数据性能影响
不将数据存储在应用程序范围内,其性能影响可能并不显著。例如,打开数据库连接并运行存储过程,与从包含数据集的应用程序级变量中检索数据相比,性能差异可能可以忽略不计。因为现代数据库通常会在内存中缓存表数据,以处理重复请求。若对数据进行缓存,可能会模仿数据库的行为,从而使RAM存储需求翻倍。
1.2 存储在会话范围的数据资源影响
当存储经常变化的小资源时,锁定 Application
对象来修改数据(这会阻塞所有其他 Application
对象数据请求),可能比为每个用户在会话范围内冗余存储数据,甚至作为cookie存储更不利于应用程序。
1.3 磁盘缓存数据
磁盘访问速度比从内存访问数据慢,但现代操作系统也会缓存数据。可以通过以下操作验证:
1. 创建一个HTML文件(如 ch6\diskCacheTest.htm
),将其放在Web应用的文件夹中。
2. 在浏览器中浏览该文件,并多次按下刷新按钮。观察磁盘访问指示灯,会发现并非每次请求都会亮起。这是因为操作系统会检查文件是否更改,然后从磁盘缓存中提供文件。
3. 也可以使用Web表单 ch6 - 17.aspx
直接读取文件 diskCacheTest.htm
进行测试,结果表明磁盘访问