Empfohlen: ASP steuert 6 sehr klassische Codes für die XML -Datenbank Nr. 1-Erstellen Sie eine XML-Datenbankdaten.xml <xml Version = 1.0?> <datensätze> <datensatz
7.2.4 Client -Skriptfehler
Bisher haben wir die Fehler von ASP erfahren. ASP wird jedoch auch häufig verwendet, um Webseiten mit Client -Skripten zu erstellen. Wenn das <Skript> -Element, das den Client -Code enthält, nicht auf das Attribut runat = server festgelegt wird, berücksichtigt der ASP den Server nicht und übermittelt die Webseiteninformationen an den Client, ohne ihn zu ändern.
Wenn also eine ASP -Webseite geöffnet und ein Browserfehlerdialog angezeigt wird, sollten Sie auf der Serverseite keine Fehler im ASP -Programmcode suchen. Der Browser kann den ASP -Programmcode nicht sehen, daher kann er keine Fehler erkennen. Wenn im Client ein Dialogfeld angezeigt wird, muss im Client -Code ein Fehler auftreten.
1. Syntaxfehler
Wenn der Client -Programmcode auf der Webseite einen Syntaxfehler aufweist, erfährt der Browser den entsprechenden Fehler, wenn das Skript an den Client heruntergeladen wird. Obwohl der Inhalt auf der Webseite weiterhin normal geladen werden kann (es sei denn, dynamisch von diesem Client -Skriptcode geladen), wird die Webseite nicht mehr ausgeführt. Der Benutzer wird ein Dialogfeld angezeigt, das die Fehlerdetails enthält, oder eine Statusnachricht, die angibt, dass die Webseite den Fehler enthält.
Moderne Browser verbergen in der Regel die Details von Web -Skriptfehlern und zeigen nur ein kleines Fehlersymbol in der Statusleiste an. In IE 4.0 und IE 5.0 kann das Dialogfeld Normalfehler über die erweiterte Seite des Dialogfelds Internetoptionen aktiviert werden, wie in Abbildung 7-14 gezeigt:
Abbildung 7-14 Bildschirm für erweiterte Seiteneinstellungen
Die Behandlung von Clientfehlern im Skriptprogrammcode ähnelt denen auf der Serverseite und ist normalerweise einfacher, da Webseiten häufig durch Doppelklicken direkt aus dem Serververzeichnis heruntergeladen werden können. Im Allgemeinen müssen Sie keine Webseiten über Webserver und HTTP erhalten, um die Ergebnisse im Browser zu beobachten. Der einzige Unterschied besteht darin, dass einige Server -Interaktionen von Client -Skripten durchgeführt werden, z. B. durch Datenbindung oder dynamisches Laden mit RDS.
2. Laufzeit oder semantischer Fehler
In Client-Skripten können Sie häufig auf Syntaxfehler und Laufzeit- oder semantische Fehler stoßen. Tatsächlich ist dieses Phänomen auf der Kundenseite sehr häufig. Da der Client die Skriptumgebung wie die Serverseite nicht steuern kann, ist es nicht sicher, wie der Benutzer auf seinem Computer ausgeführt wird. Tatsächlich kann der Server nur die allgemeine Situation von einigen Komponenten wie Browserfunktionen erhalten.
Daher funktionieren Skriptprogramme, die Client -Objekte oder spezielle Versionen von Skriptsprachen und Eigenschaften verwenden, wahrscheinlich nicht ordnungsgemäß. Der Umgang mit Clientfehlern ähnelt jedoch dem Umgang mit Serverfehlern.
3. Client -Programmcode auf dem Server erstellt
Wenn ein Fehler auftritt, besteht die spezielle Ausnahme von den ASP -Fehlerseitenregeln (über den Fehler, der dem Fehler auftritt) entsprechend den ASP -Fehlerseitenregeln, um den ASP -Programmcode zu verwenden, um den Client -Programmcode auf dem Server dynamisch zu erstellen. Sie möchten beispielsweise Bewertungsvorgänge in ASP ausführen und dann die Daten an den auf dem Client ausgeführten Skriptcode übergeben. Am einfachsten besteht darin, die Daten als Variable in den Skriptcode einzufügen:
<%
»Holen Sie sich den Namen unseres Servers aus der Servervariables -Sammlung
strServernameInasp = request.servervariables (server_name)
%>
<Script Language = jscript runat = client>
<!- Code vor älteren Browsern verbergen
var StrServername = < % = StrSerVernameInasp %>;
…
alert ('Servername ist:' StrServerName);
…
// Code nicht mehr verbergen
->
</Script>
Auf dem Client, nach ASP diese Seite verarbeitet, erhalten Sie:
<Script Language = jscript runat = client>
<!- Code vor älteren Browsern verbergen
var strservername = Wroxbox;
…
alert ('Servername ist:' StrServerName);
…
// Code nicht mehr verbergen
->
</Script>
Das Attribut runat = client kann ignoriert werden, aber das Hinzufügen dieses Elements kann es deutlicher machen, wenn die ASP -Webseite angezeigt wird, auf der der Code ausgeführt wird.
Wenn Sie die Daten aus der serverseitigen Datenbank zu einem Client-Array an einem bestimmten Ort hinzufügen möchten, können Sie das folgende Programm zum Implementieren verwenden:
<Script Language = jscript runat = client>
<!- Code vor älteren Browsern verbergen
var arrbooks = new Array (10) // Der höchste verfügbare Index wird sein
<% 'Beginn der ASP -Verarbeitung
intindex = 0
Tun, während {nicht am Ende eines Rekordsets}
Strtitle = {Title aus Datenbankdatensatz}
Response.write arrbooks [& cint (intindex) &] = '_
& Strtitle & '; & vbcrlf
intindex = intindex 1
{Wechseln Sie zum nächsten Datensatz in der Datenbank}
Schleife
…
Machen Sie hier im Client etwas mit der Reihe von Buchtiteln
…
// Code nicht mehr verbergen
->
</Script>
Dieser vom serverseitigen ASP-Programmcode generierte Clientcode erstellt eine Reihe von Buchtiteln, wenn der Client ausgeführt wird. Der Client -Skriptfehler, der gleichzeitig generiert wird, wird im Dialogfeld "Fehler des Browsers" angezeigt. Der Grund für den Fehler ist, dass Arrays, die nach ARRbooks benannt sind, von JavaScript Code erstellt werden, wenn sie auf dem Client ausgeführt werden und nur 9 Buchtitel akzeptieren können. Serverseitiger Code kann höchstwahrscheinlich mehr als 9 Buchtitel generieren, was durch die Anzahl der Datensätze in der Quelldatenbank bestimmt wird. Dies entspricht dem folgenden Client -Code:
<Script Language = jscript runat = client>
<!- Code vor älteren Browsern verbergen
var arrbooks = new Array (10) // Der höchste verfügbare Index wird sein
arrbooks [0] = 'Instant JavaScript';
arrbooks [1] = 'Professional ASP 3.0 -Programmierung';
arrbooks [2] = 'ado 2.5 Programmierer Referenz';
…
usw
…
arrbooks [9] = 'ASP -Techniken für Webmaster';
arrbooks [10] = 'ASP -Programmierer Referenz'; // <- clientseitiger Fehler treten hier auf
arrbooks [11] = 'adsi CDO -Programmierung';
arrbooks [12] = 'Professionelle MTS und MSMQ -Programmierung';
…
Machen Sie hier im Client etwas mit der Reihe von Buchtiteln
…
// Code nicht mehr verbergen
->
</Script>
Diese Seite kann nur nach Korrektur ordnungsgemäß funktionieren. Es kann erhöht werden, indem die Arraygröße erhöht oder die Anzahl der Datensätze aus der Datenbank gesteuert wird.
7.3 Fehler verhindern
Ich habe einige verschiedene Arten von Fehlern gesehen, die oben auftreten können, und ich habe das Gefühl, nach Fehlern zu suchen. Hier finden Sie einige Überlegungen zur Vermeidung von Fehlern in Programme. Obwohl nicht garantiert ist, dass das geschriebene Programm frei von Fehlern ist, sind viele hier zusammengefasste Techniken zusammengefasst.
Teilen: So konvertieren Sie ASP -dynamische Webseiten in HTM -statische Seiten Vor einiger Zeit war eine ASP -Seite mit vielen Besuchern sehr langsam auszuführen, und sie wurde nicht häufig modifiziert, so dass es zu faul war, um es direkt zu statischer zu machen. Jedes Mal, wenn ich es vom Server herunterladen musste, um es zu ändern, musste ich einen Weg finden, die ASP -Seite in eine statische HTM -Seite umzuwandeln. Ich habe das schon einmal gesehen