当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp dictionary对象的用法

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 asp dictionary对象的用法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 36 ::
收藏到网摘: n/a

关于script的dictionary对象,其实我想一开始ms是借鉴了python之类的动态脚本语言的,而且是面对客户端开发的关于这一点可以参考wrox的asp程序员参考手册里第137页里 如果在session级保存一个dictionary对象会降低系统的性能,而在application级保存一个dictionary对象会导致web服务器崩溃,关于这个就不在多说了。
现在我们要考虑的是dictionary对象在单页的时候,有哪些设计时的缺陷:
大家可以这么试试
set rs=server.createobject("adodb.recordset")
sql="select * from table"
rs.open sql,conn,1,3
set ttt=server.createobject("scripting.dictionary")
ttt.add "xxx",rs("field")
set rs=nothing
liu=ttt("xxx") '当你这么做的时候会发现一件什么事呢?asp页会告诉你发生意外!!!这个就很令人诧异了,什么是意外呢?很难说,后来经过我反复的测试发现是因为不能把rs("field")的值直接给dictionary对象,经过反复研究得出的结论是如下的:dictionry是把rs("field")的内存地址给储存了,这样的话,我刚才写的那个无疑是一种灾难,解决方法是把这个rs("field")放到一个变量里就可以解决了,但是dictionary对象难道不可以保存一个被nothing过的对象么?这个就是一个很大的疑问了,所以我又写了这么一段程序,大家可以保存成try.htm看看效果的
<script language='vbscript'>
set ttt=createobject("scripting.dictionary")
ttt.add "liu","uuu"
set ddd=createobject("scripting.dictionary")
ddd.add "ppp",ttt
set ttt=nothing
bbb=ddd("ppp")("liu")
alert(bbb)
</script>
结果是什么?你会发现一段alert了uuu说明是没有问题的,这就说明dictionary对象其实是把另一个
dictionary对象整个clone进来了,这就更验证了wrox的书中写的,dictionary对象在ms开发的时候其
实是针对客户端的,这种说法了
还有对数组与dictionary合用的代码也可以给大家看看的
<script language='vbscript'>
i=1
picname=("xxx")
str="set " & "pic_" & i & "=createobject(" & """" & "scripting.dictionary" & """" & ")"
execute(str)
str="pic_" & i & ".add " & """" & "picname" & """" & "," & """" & picname & """"
execute(str)
dim ttt()
redim ttt(5)
ttt(0)="uuu"
pic_1.add "item",ttt
liu=pic_1("picname")
set pic_2=createobject("scripting.dictionary")
erase ttt
redim ttt(5)
ttt(0)="iii"
nnn=pic_1("item")(0)
pic_2.add "rrr",ttt
zzz=pic_2("rrr")(0)
alert(liu)
alert(nnn)
alert(zzz)
</script>