|
|
#11 (permalink) |
|
Teşekkür Ederim arkadaşlar, konuyla ilgili olan işimde include edilecek sayfların isim bilgileri veritabanından çekileceğinden ve içerikleri salt HTML olduğundan, execute sanırım bu durumda en iyi çözüm gibi duruyor. @ssonmez'in belirttiği "Select" döngüsü ile dinamik include işlemi, sadece siz kodu yazarken varlığını bildiğiniz dosyaların include edilebilmesi ile ilgili olduğundan bu soruna çözüm olamıyor. Ek olarak, calisto'nun verdiği adreste yer alan aşağıdaki örnekte, ASP kodları içeren bir dosyanın include işlemi için ideal gibi gözüküyor (henüz denemedim) Kod:
<% 'Pass the name of the file to the function. Function getFileContents(strIncludeFile) Dim objFSO Dim objText Dim strPage 'Instantiate the FileSystemObject Object. Set objFSO = server.CreateObject("Scripting.FileSystemObject") 'Open the file and pass it to a TextStream Object (objText). The '"MapPath" function of the server Object is used to get the 'physical path for the file. Set objText = objFSO.OpenTextFile(server.MapPath(strIncludeFile)) 'Read and return the contents of the file as a string. getFileContents = objText.ReadAll objText.Close Set objText = Nothing Set objFSO = Nothing End Function %>
__________________
Ars longa vita brevis * pixage.net:geometrik senfoni | işleyenkulak:kulaklar pas tutmasın flickr:bir insan bin enstantane | macline:mac'te multimedya |
|
|
|
|
|
|
#12 (permalink) |
|
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,278
|
hocam ASP3, ve executetan sonra bu yukarıdaki fonksiyonb çok gereksiz. execute ile işii hemen halledebilirsin.
Bu ve benzeri fonksiyonlar execute yokken kullanılıyordu.
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site! |
|
|
|
|
|
#13 (permalink) |
|
Üyelik Tarihi: 05.10.2003
Yer: Bursa
Yaş: 19
Mesaj: 2
|
server.Execute ile sayfa çağırıldığı zaman, çağırıldığı sayfadan bağımsız olarak işlenir
Yani Ana sayfada Conn isimli bir AdoDB.Connection nesnesi oluşturmuş iseniz bunu server.Execute ile çağırdığınız sayfada kullanamıyorsunuz Ama Eğer ana sayfaya querystring ile veya form dan gelen verileri Ana sayfa da da çağırdığınız sayfada da kullanabiliyorsunuz. @Pixage in yazmış olduğu kodlardan anladığım kadarıyla sayfanın işlenmesine gerek yok Çünkü FSO ile dosyayı okuyor Böylece yukarıda belitmiş olduğum tüm sorunlar ortadan kalkıyor(değişkenler vs...) Bundan dolayı server.Execute ile çağırılması hız ve güvenlik olarak daha mantıklı... |
|
|
|
|
|
#14 (permalink) |
|
Üyelik Tarihi: 05.12.2003
Yer: İstanbul
Mesaj: 899
|
Her ne kadar sorun halledilmiş gözüksede #include ile ilgili söylenmesi gereken bir şey var.
#include bir ASP yada VB komutu değildir. IIS tarafında tanımlı pre-processor directive'lerden biridir. Bunlardan #include haricindekiler sadece düz HTML içeren sayfalarda kullanılabiliyor, örn: #echo, #config. #include'un pre-processor directive şu anlama geliyor. Sayfada ki kod henüz process edilmeden önce sayfaya includelar eklenir. Yani Kod:
<% select case hangisayfa case "tarihce.ASP" %> <!-- #include file="tarihce.ASP" --> <% case "yonetimkurulu.ASP" %> <!-- #include file="yonetimkurulu.ASP" --> <% end select %> Bir diğer nokta #include direktifinin içine <%%> koyamazsınız çünkü include yapılırken henüz kodçalıştırma aşamasına geçilmiş değildir. -- Z.Dereli Mesaj blurise tarafından 07.12.2003 (12:43) yeniden düzenlendi.. |
|
|
|
|
|
#15 (permalink) |
|
@blurise sözlerin çok doğru. Benim kafama takılan birşeyde bu. Yüz dosya tek bir case de değerlendiriliyorsa, IIS aslında 100 dosyayı include eder gibi bekleyip, arayıp tarayıp, zaman kaybediyor. Sayfa sayısı arttıkça bir bekleme zamanı artışı oluyor. Break gibi bir komutla hsayfa bulunduğu an, case den dışarı atabilir miyiz? Ya da bu süreyi kısaltmanın daha mantıklı bir yolu var mıdır?
__________________
Portfolyo | Güneşin Tam İçinde | DeviantArt Mihrace.Net ! | 3d Gözlük | Ebu'l-iz | Kimin Eli? | Reklam-im |
|
|
|
|
|
|
#16 (permalink) |
|
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,278
|
birincisi hocam "case" işleminde zaten ilk case bulunduğunda işlem sonlandırılır.
"IIS aslında 100 dosyayı include eder gibi bekleyip," IIS her dosyayı case dahi olsa include eder bu doğru ancak şu var. IIS özel bir cacheleme sistemine sahip. Mesela yeni bir dosya oluştur içine de 300 tane include koy bir de timer koy. Browserdan çalıştır. Mesela timer 1dk. çeksin; ikinci defa browserdan aç bu süre 1sn. ye vs. inecektir. Bunun sebebi IIS' in zeki cacheleme sistemidir. Tamamen server-side bir olaydır. Dolayısıyla bu konuda pek endişe etemene gerek yok sana bir performans kaybına yol açmayacaktır.
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site! |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!