Sayfa Etkinlik Alanı Kullanımı
Server.CreateObject ile yarattığınız bir nesne o sayfa boyunca varolur. Nesne o sayfa üzerindeki bütün betik komutlarınca erişilebilir ve sayfanın işlenmesi bittiğinde bırakılır.
Visual Basic ya da VBScript ile programlama yaptıysanız, ASP sayfayı işlemeyi bitirene kadar bir nesneyi bırakamamanıza dikkat edin. Örneğin aşağıdaki VBScript ifadesi bir nesneyi bırakmak için kullanılır:
Set myObj = Nothing
Bu ifadeyi bir ASP sayfasında kullanırsanız, myObj yi kullanmaya ilişkin her deneme tahmin edildiği gibi bir hata kodu döndürecektir. Ama aslında ASP siz nesneyi bıraktıktan sonra da o nesneye atanan kaynakları tutar ve sayfanın işlenmesi bitenen kadar da bu sürer.
Nesnelerin sayfa etkinlik alanları olduğu için kodla bırakılabileceklerine güvenmeyin. Örneğin aşağıdaki döngü 1001 tane Connection nesnesi yaratır ve bu da büyük bir SQL sunucu üzerindeki bağlantılardan bile birçoğunu açar:
<%
For I = 0 to 1000
Set Conn = Server.CreateObject(”ADODB.Connection”)
Conn.Open “connection string”
Next
%>
Bir Nesneye Oturum Etkinlik Alanı Atanması
Oturum etkinlik alanına sahip bir nesne her yeni oturum için yaratılır ve oturum sona erince bırakılır; yani her aktif oturum için bir nesne vardır. Oturum etkinlik alanı, birden çok betik tarafından kullanılan ama tek bir kullnıcı oturumunu etkileyen nesneler için kullanılır.
Bir nesneye oturum etkinlik alanı atamak için nesneyi ASP nin standart Session nesnesinde saklayın. Global.asa dosyasında <OBJECT> etiketini kullanarak ya da bir ASP sayfasında Server.CreateObject metodunu kullanarak oturum etkinlik alanı olan bir nesne yaratabilirsiniz.
Global.asa dosyasında <OBJECT> etiketini RUNAT (Server atanmalıdır) ve SCOPE (Session atanmalıdır) deyimleri ile genişleterek kullanabilirsiniz. Örneğin:
<OBJECT RUNAT=Server SCOPE=Session ID=MyAd PROGID=”MSWC.Adrotator”>
</OBJECT>
Nesneyi Session nesnesi içinde sakladıktan sonra nesneye uygulamadaki herhangi bir sayfadan erişebilirsiniz. Aşağıdaki ifade bir önceki örnekte <OBJECT> etiketi ile yaratılan nesneyi kullanmaktadır:
<%= MyAd.GetAdvertisement(”addata.txt”) %>
Bir ASP sayfasında Server.CreateObject metoduyla bir nesneyi Session nesnesinde tutabilirsiniz. Örneğin:
<% Set Session(”MyAd”) = Server.CreateObject(”MSWC.Adrotator”) %>
Nesneyi aşağıdaki gibi kullanabilirsiniz:
<% Set MyAd = Session(”MyAd”) %>
<%= MyAd.GetAdvertisement(”addata.txt”) %>
Nesnelere Uygulama Etkinlik Alanı Atanması
Uygulama etkinlik alanına sahip bir nesne, uygulama başlayınca yaratılan bir nesnedir. Bu nesne tüm istemcilerce paylaşılır. Çok az durumda bir nesneye uygulama etkinlik alanı vermelisiniz. Sayaçlar gibi bazı nesnelere uygulama etkinlik alanı verilebilir ama genelde takip eden kesimde önerilen alternatifleri kullanmalısınız.
Bir nesneye uygulama etkinlik alanı vermek için nesneyi ASP nin standart Application nesnesinde saklayın. Bunu yapmak için Global.asa dosyasında <OBJECT> etiketi kullanabilir ya da bir ASP sayfasında Server.CreateObject kullanabilirsiniz.
Not; Bu yazı 04 Aralık 2003 tarihinde http://www.sorucevap.com/uyeler/dersler.asp?maxiturk adresinde tarafımca yayınlanmıştır.
Kolay Gelsin