一般系统登陆管理都要用到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

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)原创,装载请注明出处!






- 评论:(0)
发表评论 TrackBack引用地址