狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

ASP集合運用

ASP集合運用

更新時間:2019-07-07 文章作者:未知 信息來源:網絡 閱讀次數:


大多數ASP 內建對象支持集合。集合是存儲字符串、數字、對象和其他值的地方。除了
在存儲或取出項目時集合會自動擴展與搜索外,集合與數組非常相近。與數組不同的是,
集合被修改后,項目的位置將會移動。可以通過集合中項目的名稱、索引或者通過在集
合的所有項目中遍歷訪問項目。
通過名稱和索引訪問項目
通過使用項目名稱可以訪問集合中的具體項目。例如,Contents 集合擁有在 Session
對象中保存的所有變量。同樣也擁有由 Server.CreateObject 創建的所有對象。假設
在Session 對象中存儲了下列用戶信息:
可以使用在集合中存儲項目時關聯的名稱訪問項目。例如,下面的表達式返回字符串
“Sam”:
通過使用與項目關聯的索引或號碼也可以訪問項目。例如,下面的表達式檢索存儲在
Session 對象的第二個存儲槽中的信息并且返回“Woo”:
ASP 集合從 1開始編號。當在集合中增加或刪除項目時,與項目關聯的索引將會改變。
所以不能認為項目的索引始終不變。正如將在下面的主題中說明的那樣,利用索引的
訪問一般用來遍歷集合,或訪問只讀集合中的項目。
通過使用速記的名稱可以訪問項目。ASP 以特定的順序搜索與對象關聯的集合。如果
在對象的集合中特定名稱的項目只出現一次的話,可以消除該集合的名稱:
訪問存儲在 Application 或 Session 對象中的項目時,消除集合名稱一般是安全的。
但是,對于 Request 對象,最好指定集合名稱,因為該集合很可能包含重復的名稱。
遍歷集合
在集合的所有項目中遍歷可以了解集合中存儲的項目或修改項目。遍歷集合時,必須
提供集合名稱。例如,可以使用 VBScript 中的 For...Each 語句訪問存儲在Session
對象中的項目:
可以使用 VBScript 中的 For...Next 語句遍歷集合。例如,要列出上例中存儲在
Session 中的三個項目,可以使用下列語句。
因為一般不知道存儲在集合中的項目個數,ASP 支持集合的 Count 屬性,這個屬性返
回集合中的項目數。可以使用 Count 屬性指定計數器的終值。
可以在腳本中使用 for 語句在集合中循環。在 JScript 的 for 語句中使用Count 屬
性時,為了收到更大的效果,應該將 Count 值分配給本地變量并使用該變量設置計數
器終值。這樣,腳本引擎就不需要每次循環都查尋 Count 的值。下面的例子展示了這
個技巧:
Microsoft JScript 3.0 引入了 Enumerator 對象。可以使用該對象遍歷 ASP 集合。
atEnd 方法指出了集合中是否還存在項目。moveNext 方法移動到集合中的下一個項目。
遍歷帶子關鍵字 (Subkeys) 的集合
腳本在單一 cookie 中嵌入相關值以減少在瀏覽器和 Web 服務器之間傳送的 cookie
數目。因此 Request 和 Response 對象的 Cookies 集合能夠在單一項目中擁有多個值。
這些子項目或子關鍵字可以被單個訪問。只有 Request.Cookies 和 Response.Cookies
集合支持子關鍵字 (Subkeys)。Request.Cookies 只支持讀操作;Response.Cookies只
支持寫操作。
可以列舉 Request.Cookie 集合中所有的 cookie 以及 Cookie 中所有的子關鍵字
(Subkeys)。但是,如果在沒有子關鍵字 (Subkeys) 的 Cookie 上遍歷子關鍵字,將不
會產生任何結果。通過使用 .HasKeys 語法首先檢查cookie是否含有子關鍵字(Subkeys),
就可以避免這種情況。下面的這個例子展示了這個技巧。
遍歷對象集合
Session 和 Application 集合可以保存數量變量或者對象實例。Contents 集合擁有數
量變量和通過調用 Server.CreateObject 生成的對象實例。StaticObjects集合擁有在
Global.asa 文件中使用 HTML 元素創建的對象。 在遍歷包含對象的集合時,可以訪問
對象的標識符或對象的方法和屬性。例如,假設應用程序使用一些對象創建用戶帳號,
而且每個對象有初始化方法,可以遍歷 StaticObjects 集合來調用每個初始化方法:
ASP 集合有何不同之處? 盡管在本主題中討論的 ASP 集合與 Visual Basic的
Collection 對象非常相似,但還是有些不同。ASP 集合支持 Count 屬性和 Item 方法,
但不支持 Add 和 Remove 方法。 設置對象作用域 對象的作用域決定哪些腳本可以使
用該對象。默認情況下,當您創建對象實例時,該對象具有頁作用域。同一 ASP 頁中
的任何腳本命令都能使用該頁作用域的對象;當 ASP 頁送回客戶端時,該對象即被釋
放。對大多數對象來說,推薦的作用域是頁作用域。您可以改變一個對象的作用域,使
其可被其他頁的腳本使用。本主題將解釋如何使用頁作用域的對象以及如何改變對象的
作用域。
使用頁作用域對象 在 ASP 頁上用 Server.CreateObject 創建的對象在該頁的生存期內
一直存在。該對象對該頁的任何腳本命令都是可訪問的,當 ASP 處理完該頁時,該對象
即被釋放。因此,對象具有該頁的作用域或生命周期。 在用Visual Basic 或 VBScript
編程時,要注意在 ASP 處理完該頁之前不要釋放對象。例如,以下語句經常用于通過將
對象變量賦以 Nothing 值來釋放對象: Set myObj = Nothing 如果您在 ASP 頁中包含
了該語句,那么任何使用 myObj 的企圖都將會返回一個預期的錯誤代碼。但在內部,即
使在對象釋放以后,ASP仍保留對它的引用。當您在腳本中不能使用對象時,對象的資源
直到ASP處理完頁之后才釋放。同樣,如果您通過創建另一個對象實例并將其賦給已使用
過的對象變量來釋放該對象時,ASP 將保留對原對象實例的引用。對大多數腳本來說,
創建多個對象可能不會產生問題,但如果對象使用共享資源,比如數據庫連接,就有可
能出現問題。由于對象有頁作用域,所以不要依靠手工釋放的對象。例如,以下的循環
創建 1001 個 Connection 對象,它將能打開大多數的連接甚至于一個大型的 SQL
server: 總的來說,應該盡量避免在一個循環內部創建對象。如果無法避免,您應該手
工釋放被對象使用過的資源。如果 Connection 對象僅被創建一次,且數據資源的物理
連接在每個循環中被打開然后關閉,那么上例將會正常運行: 為對象賦予會話作用域
在應用程序中,對于每個新會話,都會創建session-scope 對象,并且在會話結束后會
將其釋放。因此,每個活動的會話都有一個對象。會話作用域用于從多個腳本中調用的
對象,但只影響一個用戶會話。您可以只在需要時才為對象賦予會話作用域。如果確實
需要使用會話作用域,那么就必須了解提供對象的組件的線程模型,因為它影響性能和
對象的安全環境。詳細信息,請參閱本主題的“高級信息:性能問題” 。 要為對象賦
予會話作用域,請將對象存儲在 ASP Session 內建對象中,您既可以在 Global.asa
文件中使用 標記,也可以在 ASP 頁上使用 Server.CreateObject 方法創建具有會話
作用域的對象實例。 在 Global.asa 文件中,您可用擴展了 RUNAT 屬性(必須設置為
Sever)和 SCOPE 屬性(必須設置為 Session)的 ;OBJECT> 標記。以下示例創建一個
Ad Rotator 對象的會話作用域實例:
一旦您在 Session 對象中存儲了對象,您就可以從應用程序的任何頁中訪問該對象。
下面的語句使用上例中由 標記創建的對象實例: 在 ASP 頁上,您也可以使用
Server.CreateObject 方法將對象存儲在 Session 內建對象中。以下示例在 Session
對象中存儲 Ad Rotator 對象的一個實例。 要顯示廣告,您首先應該獲取存儲在
Session 對象中的 Ad Rotator 對象的實例,然后才能調用方法來顯示對象: 在用標
記聲明的對象被某個 .asp 文件中的腳本命令引用之前,ASP 并不創建其實例。
Server.CreateObject 方法則立即創建該對象實例。因此,對會話作用域對象來說,使
用 標記要比 Server.CreateObject 屬性更好。 為對象賦予應用程序作用域
application-scope 對象是在應用程序啟動時就創建的對象的單個實例。該對象由所有
客戶端請求共享。僅在極少數情況下,您才需要為對象賦予應用程序作用域。一些實用
程序對象,例如計數器等,可能需要應用程序作用域。但一般來說,您可用在下一節中
建議的替代方案。另外,線程模型會影響性能和對象安全環境(請參閱本主題的“高級
信息:性能問題”)。 要為對象賦予應用程序作用域并將其存儲在ASP Application內
建對象中,既可以使用 Global.asa 文件中的 標記,也可以使用 ASP 頁上的
Server.CreateObject 方法創建應用程序作用域的對象實例。 在 Global.asa 文件中,
您可用擴展了 RUNAT 屬性(必須設置為 Sever)和 SCOPE 屬性(必須設置為 Session)
的 ;OBJECT> 標記。在 ASP 頁中,您可以使用 Server.CreateObject 將對象實例存儲
在 Application 內建對象中。關于使用 標記和 Server.CreateObject的示例,請參閱
上一節“為對象賦予會話作用域”。 會話和應用程序作用域的替代方案 僅當需要時,
才能為對象賦予會話或應用程序作用域。因為在會話或應用程序結束運行之前,這些對
象會一直保留。它們會占用內存或數據庫連接等資源,這些資源可能會在其他方面更有
用。另外,組件的線程模型會影響您從中所創建的對象的性能,尤其是那些具有會話或
應用程序作用域的對象。在很多情況下,比創建應用程序或會話作用域對象更好的方法
就是利用會話或應用程序作用域變量,將信息傳遞給在網頁一級創建的對象。例如,不
要為 ADO Connection 對象賦予會話或應用程序作用域,因為它創建的連接會在相當長
的一段時間一直保持打開而此時腳本已不再使用 ODBC 連接共享。但您可以將 ODBC 連
接字符串存儲在 Session 或 Application 內建對象中,并在網頁上從創建的Connection
對象實例中獲取該字符串。通過這種方式,您可以存儲在會話或應用程序名稱空間中頻
繁使用的信息,但只有在需要時才創建用該信息的對象。關于作用域變量的詳細信息,
請參閱“使用變量和常量”。 用戶自定義的 JScript 對象您可以通過定義一個創建和
初始化新對象的屬性和方法的構造函數來創建自己的JScript對象。當腳本用 new 操作
符來調用構造函數時,就會創建該對象的實例。ASP 腳本支持用戶自定義的對象,當具
有頁作用域時,后者正常運行。但如果為用戶自定義的JScript 對象賦予應用程序或會
話作用域,將可能影響該對象的功能。特別是,若一個對象具有會話或應用程序作用域,
則其他頁的腳本可以獲取該對象的屬性,但是卻不能調用其方法。高級信息:性能問題
組件的線程模型可能會影響 Web 站點的性能,一般來說,帶有Both 標記的對象是推薦
在所有的 ASP 腳本中使用的對象,尤其是在 Session 和 Application對象中。不推薦
使用單線程對象。因為您可能不會始終控制所用對象的線程模型,所以,以下的指導可
幫助您獲得最佳性能: 頁作用域對象。帶有 Both 或 Apartment 標記的對象將給予您
最佳的性能。 應用程序作用域對象。一般來說,應避免在 Application 對象中放置對
象。如果確需使用應用程序作用域對象,您會從結合了 FreeThreadedMarshaler的帶有
Both標記的對象中獲得最佳性能。您既可以用 標記也可以用 Server.CreateObject 方
法在 Application對象中存儲帶有 Single、Free 或 Both 標記的對象。您必須用單元
線程對象來使用 標記。 會話作用域對象。帶有Both 標記的對象將為您提供最佳性能。
用單線程或單元線程對象會導致 Web服務器將會話鎖定在一個線程上。自由線程對象不
會鎖定會話,但運行速度不高。在 Session 對象中,您可以用 標記或
Server.CreateObject方法存儲對象 。 如果您已安裝了 SDK 文檔,請參閱“創建 ASP
組件”,您將會獲得有關線程模型及其隱含的組件性能的詳細信息。(在 Windows 95
及其后續版本中 SDK 文檔不可用)

(出處:熱點網絡)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
日本免费新一区视频| 亚洲国产精品av| 欧美丰满一区二区免费视频| 色又黄又爽网站www久久| 国产精品一二| 一区二区三区四区国产| 一区二区三区你懂的| 99精品国产在热久久| 一区二区国产在线观看| 99在线精品免费视频九九视| 国产日韩欧美亚洲一区| 国产精品一区二区三区四区五区| 国产精品免费在线| 免费亚洲网站| 欧美在线观看视频在线| 欧美日韩亚洲另类| 欧美一区二区日韩| 亚洲精品一区在线观看| 久久久精品国产免大香伊| 日本一区二区免费在线观看视频| 中文字幕免费不卡| 亚洲欧美电影院| 亚洲一区二三区| 日韩在线一区二区三区| 久久精品国产澳门| 国产99久久久国产精品| 91污在线观看| 91久久综合| 久久久www免费人成黑人精品| 在线观看视频一区二区| 91精品国产91久久久久久最新毛片| 精品国产免费一区二区三区香蕉 | 亚洲高清123| 亚洲一区二区动漫| 欧美调教femdomvk| 欧美tickling网站挠脚心| 欧美国产精品中文字幕| 亚洲一二三级电影| 久久se精品一区二区| 成人av影院在线| 在线观看一区欧美| 久久蜜桃精品| 日韩三级免费观看| 国产精品国模大尺度视频| 亚洲国产中文字幕| 国产伦精品一区二区三区在线观看 | 91精品欧美一区二区三区综合在| 亚洲精品一区二区三区香蕉| 中文字幕色av一区二区三区| 亚洲一二三四区| 国内精品视频666| 欧美激情综合| 久久久www| 精品理论电影在线观看| 亚洲免费av观看| 精品一区二区三区蜜桃| 91亚洲永久精品| 亚洲欧美日韩综合一区| 日韩视频免费观看高清完整版| 国产精品久久一卡二卡| 日本三级亚洲精品| 91在线视频在线| 国产美女诱惑一区二区| 欧美一区二区播放| 亚洲黄色小说网站| 高清日韩电视剧大全免费| 亚洲精品欧洲精品| 欧美一三区三区四区免费在线看| 中文字幕视频一区| 国内精品视频666| 激情综合在线| 欧美群妇大交群的观看方式| 国产精品视频看| 久久99最新地址| 黑人一区二区三区四区五区| 欧美中文字幕一区二区三区亚洲| 国产目拍亚洲精品99久久精品 | 99精品久久只有精品| 国产欧美日韩综合精品二区| 欧美一区二区黄色| 樱花草国产18久久久久| 国产·精品毛片| 久久国产精品免费一区| 国产日韩综合av| 精品一区二区三区在线观看国产| 激情视频一区| 日韩午夜av电影| 亚洲成va人在线观看| 欧美激情1区2区| 欧美日韩在线播放三区四区| 亚洲人精品午夜| 成人国产精品免费观看动漫| 久久精品官网| 国产精品免费观看视频| 精品一区二区三区免费| 国产偷国产偷亚洲高清97cao| 欧美大尺度电影在线| 亚洲一二三四区不卡| 欧美黄色一区| 欧美疯狂性受xxxxx喷水图片| 亚洲图片有声小说| 你懂的国产精品永久在线| 欧美精品一二三四| 亚洲不卡av一区二区三区| 欧美另类视频| 欧美成人性战久久| 久久精品噜噜噜成人av农村| 亚洲精品女人| 国产无遮挡一区二区三区毛片日本| 精品一区二区三区免费视频| 国产精品一二| 国产精品的网站| 不卡的av电影在线观看| 欧美日韩国产小视频| 亚洲国产中文字幕在线视频综合| 欧美日韩另类综合| 精品盗摄一区二区三区| 国产乱国产乱300精品| 色又黄又爽网站www久久| 亚洲激情图片qvod| 欧美日韩国产高清视频| 欧美成va人片在线观看| 激情综合色丁香一区二区| 美玉足脚交一区二区三区图片| 最好看的中文字幕久久| 亚洲欧美综合一区| 精品盗摄一区二区三区| 国产成人8x视频一区二区| 欧美日韩免费观看一区三区| 日韩福利视频导航| 美女精品在线观看| 亚洲地区一二三色| 在线亚洲自拍| 一区二区在线电影| 在线看片欧美| 国产精品成人网| 欧美久色视频| 中文字幕+乱码+中文字幕一区| av中文字幕在线不卡| 日韩精品一区二区三区视频| 国产精品1区二区.| 9191久久久久久久久久久| 激情综合色播激情啊| 欧美日韩国产天堂| 加勒比av一区二区| 欧美福利电影网| 国产精品资源网站| 欧美一区二区三区在线观看| 精品一区二区三区久久| 欧美日韩国产三级| 国内精品视频666| 欧美一区二区在线免费播放| 国产最新精品精品你懂的| 欧美日韩精品电影| 国内不卡的二区三区中文字幕| 欧美日韩免费不卡视频一区二区三区 | 亚洲成a天堂v人片| 久久人人超碰| 蜜桃一区二区三区在线观看| 欧美性欧美巨大黑白大战| 美腿丝袜亚洲综合| 欧美日韩国产美女| 国产精品一区三区| 日韩欧美国产一二三区| aa级大片欧美| 欧美激情一区二区三区不卡 | 夜夜嗨av一区二区三区网页| 国产亚洲精品v| 日韩成人免费电影| 欧美三日本三级三级在线播放| 韩国三级电影一区二区| 日韩三级伦理片妻子的秘密按摩| 波多野结衣一区二区三区| 国产视频一区在线观看| 国产精品分类| 亚洲国产精品久久人人爱蜜臀| 久久久久久久久久久一区| 久久精品国产99国产| 日韩欧美一级二级| 你懂的国产精品| 亚洲激情中文1区| 久久综合九色| 国产一区亚洲一区| 久久色成人在线| 尹人成人综合网| 视频一区二区国产| 欧美剧在线免费观看网站| 不卡免费追剧大全电视剧网站| 亚洲国产成人午夜在线一区| 国产精品久久久久久久久久妞妞| 日韩激情av在线| 欧美一区二区精品久久911| 91年精品国产| 一区二区三区日韩欧美精品| 91国产福利在线| 成人国产精品免费观看| 日韩理论片一区二区| 久久综合影音| 国产凹凸在线观看一区二区| 国产精品乱码一区二区三区软件|