• 个性布局:
  • 侧边栏靠左显示
  • 侧边栏靠右显示
  • 侧边栏靠左加宽显示
  • 侧边栏靠右加宽显示
  • 没有侧边栏
您的位置: 笨朱先行网站相关—关于一个session占16K内存想到的优化相关
« 是用Option Explicit时,提示错误 '800a0400' 的解决方案JS身份证号码验证-支持新的带x身份证 »

关于一个session占16K内存想到的优化相关

分类: 网站相关 发布: cs99619 浏览: 日期: 2009年3月9日

前面查阅到相关资料,ASP一个session占用16K内存(http://www.f6n.net/blog/asp/81.html
一般系统登陆管理都要用到SESSION,可以说很普遍,但是如果一个信息写一个SESSION,系统性能可想而之。

最近研究动网通行证,发现了动网论坛对于这个问题的完美解决方案。
将需要读到的信息放入一个xml缓存文件,再将这个xml缓存文件存入到一个session里面。这个方法确实很巧妙!
设置可以用在大量的这样session。

先看看动网对于这样操作的核心函数。

这个函数就是将记录集自动转存到xml

用法演示:
1、写入session

……省略若干SQL连接语句……
sql="select ........"
set rs=conn.execute(sql)
if rs.bof and rs.eof then
else
  set uSession=RecordsetToxml(rs,"userinfo","xml")'调用XML函数,自动的将对每个字段对应的字段名,内容存入xml文件,其中rs为记录集,userinfo为项目
  session("zUser")=uSession.xml'将XML文件存入session中
  set uSession=nothing
end if
set rs=nothing

写入成功后session信息如下



2、如何读取?
a.读取函数

b.调用

set rSession=seeionXml("zUser")'seeionXml(session名称)
z_id=rSession.documentElement.selectSingleNode("userinfo/@z_id").text'后面这里userinfo/@z_id,就是userinfo这个项目下面的z_id这个支键


3、高级应用
在第一步写入的时候默认写入的记录集里面的内容,如何自定义内容呢?看看下面这个代码片段

  set uSession=RecordsetToxml(rs,"userinfo","xml")
  uSession.documentElement.selectSingleNode("userinfo").attributes.setNamedItem(uSession.createNode(2,"thistime","")).text=now()'这个就是自定义支键内容,具体自己看看就知道了
  uSession.documentElement.selectSingleNode("userinfo").attributes.setNamedItem(uSession.createNode(2,"thisip","")).text=trueIp()'这个就是自定义支键内容,具体自己看看就知道了
  'uSession.documentElement.selectSingleNode("userinfo/@thisip").text=trueIp()
  session(CacheName&"zUser")=uSession.xml
  set uSession=nothing


本文系笨朱先行(http://www.f6n.net)原创,装载请注明出处!

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Walle Build 100427

Copyright 2007-2010 www.F6n.net Some Rights By Joe.|