asp dictionary對象的用法

來源:互聯網
上載者:User

如果在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>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.