Konu: Asp Nedİr?
Yalnız Mesajı Göster
  #3  
Eski 28-07-2006, 11:31 AM
PaRaDoKs kullanıcısının avatarı
PaRaDoKs PaRaDoKs Çevrimdışı
Arkasokaklı
 
Giriş: Oct 2005
Konum: aNkArA
Mesaj: 631
PaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond reputePaRaDoKs has a reputation beyond repute
APPLICATION NESNESİ

Yığın halinde tek başlarına çalışabilen asp uygulamarımızı birbirleriyle ilişkilendirmek Application nesnesi ile mümkündür. Application nesnesi aynen session nesnesi gibi calışmaktadır. Tek farkı Application nesnesi global bir nesnedir. Bütün kullanıcılar aynı Application nesnesini kullanabilirler. Application Nesnesi global düzeyde oldugu icin her zaman global.asa dosyası altında tutulur.
Şimdi örnek kodumuzu inceliyelim:
Burada gösterilen kod günümüzde asp çatısı altında bulunan hemen hemen her sitede kullanılmaktadır. Sitemizde şuanda kaç kişi var?

Global.asa Dosyasının görünümü:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart

'Eğer aktif bir application yoksa bu demektir ki application nesnesi ilk defa
başlıyor.

'Buna bağlı olarak aktif kullanıcı sayımızı sıfırlıyoruz.
Application("AktifKullanici") = 0
end Sub
Sub session_OnStart
'Her yeni kullanıcı için açılan session nesnesine tekil dosyalardan olduğu gibi
'buradanda değer verebiliriz.
session.Timeout = 20
'kullanıcının session nesnesinin değer dışı kalma süresi

session("baslangic") = Now

' ornek olarak her kullanıcının session nesnesinde baslangıç degişkenine zamanı
değer olarak yazdırıyoruz.
Application.Lock
'Application.Lock application nesnesini kitler. Bu işlemi yapmamızın sebebi ise
application nesnesine değer atarken başka bir kullanıcının application
nesnesini degistirmemesini saglamak.

Application("AktifKullanici") = Application("AktifKullanici ") + 1
Application.UnLock

've tekrar UnLock ile application nesnemizi serbest birakiyoruz.
end Sub
Sub session_Onend
Application.Lock
'Kullanıcının session I bittiği takdirde application nesnesini kitliyoruz ve
yeni degerimizi veriyoruz.

Application("AktifKullanici") = Application("AktifKullanici") - 1
Application.UnLock
end Sub
</SCRIPT>

Peki bunu sayfada nasıl göstereceğiz? – Bunuda aynen session nesnesini kullandıgımız gibi kullanıyoruz.

Ornek: <%=Application(“AktifKullanici”)%> kisi su anda sayfamizda.


ASP'DE MATEMATİKSEL İŞLEMLER
Öncelikle bu işlemler matematik amaçlıdır. Yani kullanıcağımız değikenler sayı yüklü olmalıdır.

Degisken1 = "1"

Bu bir metindir. Siz sayı olarak görsenizde ASP metin diyecektir. Nedeni ise tırnaklardır.

Degisken1 = 1

Bu bir sayıdır. Her işlemi yapabilirsiniz. Üsttekini kullanırsanız

Degisken1 = "1"
Degisken2 = Degisken1 + 2

Bu durumda Degisken2 12 olur ama ikinci durumda

Degisken1 = 1
Degisken2 = Degisken1 + 2

Bu durumsa Degisken2 3 olur.

Degisken1 = 2
Degisken2 = Degisken1 * 2 + 10 / 2

Bu durumda sonuç 9 çıkar ama sonucun 7 olması lazımdı dimi niye olmadı? Çünkü ASP işlem önceliğine bakar. Peki nasıl yapıcaz? Parantez kullanıcaz!

Degisken1 = 2 Degisken2 = ((Degisken1 * 2) + 10) * 2

Şimdi oldu. İşlemlerimiz normal simgeler (+, -, *, /) Diğer işlemler ise trigonometriye kadar giriyor onların komutlarını ileride vericem. Ayrıca ^, \. "^" üssünü almak için kullanılıyor, \ ise tamsayı böler.




BUFFER HAKKINDA
Sayfa Tamponlaması ASP'de kullanılan ilginç bir özelliktir. Sayfa Tamponlanması, response nesnesinin bir özelliğidir. Bize getirdiği fayda ise; Client tarafı, sunucudan bilgiyi talep ederken bize ne aldığını kontrol ettirir, yani denetletir. response nesnesine bağlı çalışan Buffer özelliğinin default değeri daima False dır. Değer bu iken, yani false iken bir sayfadaki ASP scripti oluştuğu gibi sunulur, yani script adım adım uygulanarak sayfaya yapması isteneni uygular. Fakat biz Buffer değerini True olarak atarsak, Script tamamen çalıştırlmadan daha doğrusu tamamlanmada client tarafına bilgi sunulmaz. Kullanım şekli;

<% response.Buffer = True %>

Dikkat edilmesi gereken bir husus, bu tanımlama sayfadaki Html taglarının üstünde yer alıyor olması gerekir. Aksi takdire hata alırsınız. Bu arada hemen belirtelim, bu özellik ile Flush özelliğini beraber kullanabiliriz. Flush, bir script işleminde elde edilecek sonuçlar sayfaya yazdırılana kadar daha önce istemci tarafına yollamak istediğimiz bilgileri gönderir. bu da bize bir nevi hız kazandırır. Buffer özelliğin kullanılmasının en iyi örneğini cookielerde verebiliriz. Burada sunucu ve istemci ile bilgi alışverişi esnasında oluşabilecek hataları Buffer özelliği ile önleyebiliriz. Buna kısa ve basit bir örnek vermek gerekirse:
Diyelim, bir sayfanız var ve buraya kimsenin ulaşmasını istemiyorsunuz. Hali ile şifre koyarsınız.

<%
response.Expires = 1000
response.Buffer = True ' ışte Buffer özelliği burda devreye giriyor !
session("UserLoggedIn") = ""
if Request.Form("login") = "true" then
CheckLogin
else
ShowLogin
end if
Sub ShowLogin
%>

Bakınız sayfadaki scripte (yukarıda) bir istek geliyor. Nedir? parolayı kontrol et ! yani Scriptin bu kısmı formdan gelen bilgiyi aşağıdaki scripte paslıyor, ve oda şifrenin doğru olup olmadığını kontrol ediyor. ışte burda "Buffer =True" olayı kontrol ediyor.

%>
Sub CheckLogin
if LCase(Request.Form("kullanıcıadi")) = "AliVeliKonya" And LCase(Request.Form
("sifre")) = "123456" then
session("UserLoggedIn") = "true"
response.Redirect "falanca.asp"
else%>
<%
response.write("şifre geçersiz..")ShowLogin
end if
end Sub
%>

Bu tabii gayet basit ve kısa bir script. Burada sadece bir örnek teşkil etsin diye verdim. Bu olay daha karmaşık ve uzun scriptlerde daha da belirgin bir şekilde rol oynayacaktır.
PaRaDoKs kullanıcısına MSN aracılığı ile mesaj yolla
Alıntı Yaparak Cevapla