Vor kurzem plane ich, die MVC -Architektur in ASP implementieren zu können. Jemand muss mich gefragt haben: ASP wurde beseitigt, warum studiere ich es immer noch? Ich weiß das auch. Da Microsoft ASP 3.0 verlassen und zu ASP.NET gewechselt ist, ist ASP weit hinter PHP und JSP zurückgeblieben, das fast gleichzeitig mit ihm begann. Die Vorteile von Open Source gegenüber geschlossener Quelle sind genau wie PHP und ASP. ASP sagt, es wird beseitigt und niemand kann es retten. Es ist jedoch erwähnenswert, dass ASP auf dem chinesischen Markt ziemlich breit ist, insbesondere einige Anwendungen einiger kleiner und mittelgroßer Unternehmen. Einfaches CMS ist kein Problem und es ist einfach zu bereitstellen. Bei einigen alten Windows -Systemen müssen nicht die Installation von .NET Framework direkt ausgeführt werden. Daher ist es weiterhin erforderlich, ein Framework vorzubereiten. Dies ist jedoch ein experimentelles Rahmen, das nur darstellt, ob ASP eine MVC -Architektur implementieren kann, die PHP ähnelt.
Okay, nachdem wir uns so viel gesagt haben, wenden wir uns einfach dem Thema zu. Der Grund für dieses Problem ist, dass ich dynamisch ASP -Dateien einbeziehen muss. Wie Sie wissen, gibt es nur eine Einschlussmethode in ASP, dh SSI (Server -Seite include), das im Grunde genommen in die folgenden zwei Typen unterteilt ist:
Die Codekopie lautet wie folgt:
<!-#include file = "sample.asp"->
<!-#include virtual = "sample.asp"->
Grundsätzlich wird die erste für diese beiden Typen mehr verwendet. #Include Virtual enthält virtuelle Pfade, die in virtuellen Verzeichnissen verwendet werden können. Aber beide sind statisch. Wenn wir dynamisch einbeziehen wollen, können wir es nicht schreiben wie:
Die Codekopie lautet wie folgt:
<!-#include file = "<%= myvar%>"->
<!-#include virtual = "<%= myvar%>"->
Die obige Schreibmethode ist falsch. Es ist zu verstehen, dass die #include -Anweisung ausgeführt wird, bevor der ASP die Skript -Engine startet, um das ASP < %> -Tag auszuführen. Mit anderen Worten, #include ist nicht die Arbeit von ASP, sondern das serverseitige Programm wie die Übersetzungsarbeit von IIS, sodass Sie nicht auf Ihren ASP-Code achten.
So implementieren Sie, einschließen, include_once, fordern und fordern_once dynamisch Skriptmethoden ähnlich wie PHP einbeziehen? Schauen wir uns eine Methode des ASP Server -Objekts an: server.execute. Wenn Sie nach allen ASP -Funktionen suchen, können Sie feststellen, dass diese Funktion der Dynamik am ähnlichsten ist. Wir können ein Experiment machen:
Sample.inc.asp
Die Codekopie lautet wie folgt:
<%
Antwort.Write "Hallo Welt!"
%>
test.asp
Die Codekopie lautet wie folgt:
<%
Server.execute "sample.inc.asp"
Antwort.Write "Ich bin test.asp!"
%>
Die tatsächliche Ausgabe sollte "Hallo Welt! Ich bin test.asp!" Laut. Als nächstes machen Sie das folgende Experiment:
Sample.class.asp
Die Codekopie lautet wie folgt:
<%
Klassenprobe
Endklasse
%>
test.asp
Die Codekopie lautet wie folgt:
<%
Server.execute "sample.class.asp"
Antwort.Write Typename (Eval ("neues Beispiel"))
%>
Direkt ausführen, der Fehler "Microsoft VBScript -Laufzeitfehler" 800A01FA "-Klass ist nicht definiert: 'Beispiel'", das Ergebnis ist sehr enttäuschend, warum passiert das? Ich habe MSDN nachgeschlagen und diese Beschreibung festgestellt: "Wenn eine Datei auf der Anrufseite mit #include enthalten ist, wird das ausgeführte .asp nicht verwendet. Beispielsweise haben Sie möglicherweise eine Unterroutine in einer Datei, die in Ihrer Anrufseite enthalten ist, aber der ausgeführte .asp wird den Unterroutin -Namen nicht erkannt." Es scheint ein bisschen anders zu sein als das Problem, das ich begegnet bin. Ist server.execute code-isoliert? Führen Sie dann das folgende Experiment durch: