发新话题
打印

[方法技巧] asp---Application对象

asp---Application对象

Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。( r. H; g/ W7 m, z
Application的属性:
. u+ }0 W' c* Y  方法如下:
. H8 n' B6 d" Z5 Q' t  Application对象没有内置的属性,但是我们可以自行创建其属性。
5 R+ c( T# w0 H2 B, ~5 ]' R/ x5 W  <% Application("属性名")=值 %>
8 ~/ s8 W5 }/ o' r. b" ^6 z  其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Contents集合中添加了一项。下面两个脚本是等效的:
, `7 D: G9 e- g; g4 P& K7 ~  <% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application变量存在集合里,所以如果想要全部显示,其方法我们已经多次使用,例如For Each循环。   - Q! b2 Y4 m  v$ J8 y
<%. L3 [! b' O- Q- Q: J
For Each item IN Application.Contents' \+ |  y5 a# d4 k& ?- `* W
   Response.write("<br>"&item&Application.Contents(item))1 F& k# R& L: m7 B. c6 }3 W4 D* z
next
  U* ?( l( N+ l2 n, @9 J% _, p& g%>
9 q) e2 [! @2 g" U+ T+ B1 WApplication的方法:
1 |9 X4 G% I1 J0 m% R1 x4 s  Application的方法只有两个方法:一个是Lock,另一个是Unlock。其中Lock方法用于保证同一时刻只能一个用户对Application操作。Unlock则用于取消Lock方法的限制。如:8 y! P- h. Z- j7 W+ C
<%
, J  @; o7 u3 D. ]9 |5 C7 IApplication.Lock
% Q4 \* D6 s* G) W, p3 xApplication("visitor_num")=Application("visitor_num")+1
9 v; f7 _3 _+ {. g; nApplication.Unlock
& @7 g; _$ P/ g/ k1 m% h%> & z1 ~7 M7 [' P' ?9 R
Application的事件:
" B/ M) @$ k. k/ U- Y! O+ e1、Application_OnStart()
, G( p2 T: Y2 D' G- Q; M  F  当事件应用程序启动时触发。
$ G& w, }9 F* P% E2、Application_OnEnd()6 n8 d+ h4 I. y  \
  此事件应用程序结束时触发。
" ]0 ^7 |! Q1 F# t; x/ P  这两个事件过程都是必须定义在Global.asp文件中,一般把连接数据的函数定义在这两个事件,然后放在Global.asp中。例如:
, _9 e' n* p0 T# t3 zSub Application_OnStart
3 o1 b) U9 |& T& r  @    Application("tt18_ConnectionString") = "driver={SQL       9 n9 v% q# F5 L
                     Server};server=jeff;uid=sa;pwd=;database=test"
& G* j! e8 U* ~$ J- G; B7 YEnd Sub
" q, C+ w0 N6 m  一个数组能够被定义成Application对象,不过这个数组只能作为一个对象保存,而不能用Application(0)取出其值。可以定义一个临时数组实现这种功能。如:/ e$ \- r' e: Z- f
<%
8 J& f  q" a. ]! g8 cdim Array()& J5 f) G9 d( J' j3 j/ C; z) [9 p- |2 ~
Array=Application("array")
. }  P! k' x6 d2 J9 Lfor i = 0 to ubound(array); r# K! T$ _2 d; a
  Response.write Array(i)
' w/ e; ?! n" ]" P+ K% inext i% ~, ^3 ?8 a. k( D
%> ; w" y3 Z! L4 P: k& H. m
  同样要修改这个Application对象也可以定义一个临时数组,把Application对象赋给数组,然后修改这个数组的元素,最后把数组赋回Application对象。如:% l6 w6 D0 D7 s" z
<%; C' t9 j- P. d0 X
dim Array()- J# o- a6 ]/ _3 f+ `+ _% \
Array=Application("array")
; Z. N. l; P, d' c: o3 e) m. oArray(0)="jeff"
1 I% H4 {6 Y/ I4 c) `5 P" ?Array(1)="zhu"; I1 C4 O9 c1 P8 ?+ _4 ]$ _- b
Application.lock
( D! g  t; y, h; W- P* wApplication("array")=Array5 P9 @# K; [6 B
Application.unlock) e5 k) Z. H6 Q" l1 U) ]
%>
发新话题