Application-Variablen bleiben während der gesamten Laufzeit einer Web-Application im Arbeitsspeicher erhalten. Sie können nur durch bes. ASP-Code oder durch Beenden des IIS-Dienstes gelöscht werden.
App-Var. können außerdem von jeder im Web vorhanden ASP-Seite aus abgefragt werden.
Daraus ergibt sich, daß häufig benötigter Code oder Daten zur Vereinheitlichung in Application-Variablen gespeichert werden können. In manchen Fällen kann auch eine nicht unbeachtliche Performance-Steigerung erreicht werden.(wird im Beispiel gezeigt)
Im Bespiel werde ich die Grundstruktur (lesen sie dazu: "noFrames") einer ASP-Seite aus zwei Application-Variablen erstellen:
Application("menuBegin_string") und Application("menuEnd_string")
Sehen Sie sich den Aufbau von DevTrain an. Diese Grundstruktur werde ich in Application-Variablen einlagern. Sie beinhalten das komplette Menü(so wie oben) und den Inhalt(so wie rechts). Dadurch spare ich ein include-file und damit Zeit, wodurch es zur Performance-Steigerung kommt.
Ich schreibe als erstes eine Textdatei. Diese Beinhaltet den Code für das obere Menu und den Link-Inhalt auf der rechten Seite.
appbeginn.txt
<html> <head> </head> <body> <table border=1 width="100%"> <tr align="center" valign="middle"> <th colspan="2">Das ist die Kopf<img width="150" height="40" src="./images/ppedv.gif">Überschrift</th> </tr> <tr> <td width="20%"> <A HREF="link1.asp">Ein Link</A><br> <A HREF="link2.asp">Noch ein Link</A><br> <A HREF="link3.asp">wieder ein Link</A><br> </td> <td width="80%"> </td> </tr> </table> </body> </html> |
Diesen Inhalt lasse ich durch eine ASP-Seite auslesen und in App-Var speichern. Dies geschieht über das Scripting.FileSystemObject.
appinizial.asp
<%@ Language="VBScript" %> <% set Datei = Server.CreateObject("scripting.filesystemobject") Const ForReading = 1 set leseDatei = Datei.OpenTextFile(Server.MapPath("./appbeginn.txt"),ForReading) strInhalt = leseDatei.ReadAll leseDatei = close set leseDatei = nothing set Datei = nothing strLen = len(strInhalt) strEnd = right(strInhalt, 46) strBeginn = left(strInhalt, strLen-46) Application("menuBegin_string") = strBeginn Application("menuEnd_string") = strEnd %> |
Jetzt kann ich jede ASP-Seite meines Webs so gestalten, um das komplette Menu und die Nav-Bar einzubinden.
appshow.asp (der komplette Code!!!)
<%@ Language=VBScript %> <%Response.Write Application("menuBegin_string")%> Hier kann meinen weiteren ASP- oder HTML-Code schreiben. <%Response.Write Application("menuEnd_string")%> |
Nach dem Beenden des IIS-Dienstes werden, wie schon erwähnt, die Application-Variablen gelöscht. Deshalb müssen Sie diese Funktion in die Global.asa im Sub Application_OnStart einbinden(mit kleinen Änderungen). Dann werden die App-Var gleich nach dem Start der Webapplication bestimmt.
Wenn Sie das Menü verändern wollen, müssen Sie die appbeginn.txt verändern und anschließlich die appinizial.asp ausführen, um die App-Var. zu überschreiben.
Mit App-Var. kann ich nur eine ASP-Seiten-Struktur erzeugen. Da Application-Variablen eben nur von ASP abgerufen werden können.
Unten der komplette Code zum Testen!