Recommandé: ASP contrôle 6 codes très classiques pour la base de données XML No.1 - Créer une base de données XML Data.xml <? Xml version = 1.0?> <scord> <cord> <name> caca </name> <qq> 1
7.2.4 Erreur de script client
Jusqu'à présent, nous avons appris les erreurs d'ASP. Cependant, ASP est également souvent utilisé pour créer des pages Web contenant des scripts clients. Si l'élément <cript> contenant le code client n'est pas défini sur l'attribut Runat = Server, l'ASP ne tiendra pas compte du serveur et transmettra les informations de la page Web au client sans le modifier.
Par conséquent, si une page Web ASP est ouverte et qu'une boîte de dialogue d'erreur de navigateur s'affiche, vous ne devez pas rechercher des erreurs dans le code du programme ASP côté serveur. Le navigateur ne peut pas voir le code du programme ASP, il ne peut donc pas reconnaître aucune erreur. Si une boîte de dialogue apparaît sur le client, il doit y avoir une erreur dans le code client.
1. Erreur de syntaxe
S'il y a une erreur de syntaxe dans le code du programme client sur la page Web, le navigateur connaîtra l'erreur correspondante lorsque le script est téléchargé sur le client. Bien que le contenu de la page Web puisse toujours être chargé normalement (sauf si dynamiquement chargé par ces code de script client), la page Web cesse de s'exécuter. L'utilisateur verra une boîte de dialogue contenant les détails d'erreur, ou un message d'état indiquant que la page Web contient l'erreur.
Les navigateurs modernes ont tendance à masquer les détails des erreurs de script Web et à afficher uniquement une petite icône d'erreur sur la barre d'état. Dans IE 4.0 et IE 5.0, la boîte de dialogue d'erreur normale peut être activée via la page de dialogue Avancé de la page d'options Internet, comme le montre la figure 7-14:
Figure 7-14 Écran des paramètres de page avancés
La gestion des erreurs du client dans le code du programme de script est similaire à celles du côté serveur et est généralement plus facile car les pages Web peuvent souvent être téléchargées directement à partir du répertoire du serveur en double-cliquez. Généralement, il n'est pas nécessaire d'obtenir des pages Web via des serveurs Web et HTTP pour observer les résultats du navigateur. La seule différence est que certaines interactions de serveur sont effectuées par les scripts clients, tels que la liaison des données ou le chargement dynamique à l'aide de RDS.
2. Erreur d'exécution ou sémantique
Dans les scripts du client, vous pouvez souvent rencontrer des erreurs de syntaxe et des erreurs d'exécution ou sémantique. En fait, ce phénomène est très courant du côté client. Parce que le client ne peut pas contrôler l'environnement de script comme le côté serveur, il n'est pas certain de ce que l'utilisateur exécute sur sa machine. En fait, le serveur ne peut obtenir la situation générale que de certains composants tels que les capacités du navigateur.
Par conséquent, les programmes de script qui utilisent des objets clients ou des versions spéciales des langages et des propriétés de script ne fonctionnent probablement pas correctement. Néanmoins, la gestion des erreurs du client est similaire à la gestion des erreurs de serveur.
3. Code du programme client créé sur le serveur
Lorsqu'une erreur se produit, comme une exception particulière aux règles de la page d'erreur ASP (sur l'endroit où l'erreur se produit) correspondant aux règles de la page d'erreur ASP consiste à utiliser le code du programme ASP pour créer dynamiquement le code du programme client sur le serveur. Par exemple, vous souhaiterez peut-être effectuer des opérations d'évaluation dans ASP, puis transmettre les données au code de script en cours d'exécution sur le client. Le moyen le plus simple consiste à insérer les données dans le code de script en tant que variable:
<%
'Obtenez le nom de notre serveur de la collection de serveurs
strServerNameInasp = request.servervariables (server_name)
%>
<Script Language = JScript Runat = Client>
<! - Masquer le code aux anciens navigateurs
var strServerName = <% = strServerNameInasp%>;
…
alert ('le nom du serveur est:' strServerName);
…
// Arrête de cacher le code
->
</cript>
Sur le client, après que ASP traite cette page, ce que vous obtiendrez est:
<Script Language = JScript Runat = Client>
<! - Masquer le code aux anciens navigateurs
var strServerName = wroxbox;
…
alert ('le nom du serveur est:' strServerName);
…
// Arrête de cacher le code
->
</cript>
L'attribut runat = client peut être ignoré, mais l'ajout de cet élément peut le rendre plus clair lors de la visualisation de la page Web ASP où le code est en cours d'exécution.
De cette façon, si vous souhaitez ajouter les données de la base de données côté serveur à un tableau client à un certain emplacement, vous pouvez utiliser le programme suivant pour l'implémenter:
<Script Language = JScript Runat = Client>
<! - Masquer le code aux anciens navigateurs
var arRBooks = nouveau tableau (10) // l'indice le plus élevé disponible sera
<% 'début du traitement ASP
inindex = 0
Faire tandis que {pas à la fin d'un ensemble de disques}
strtitle = {obtenir le titre de l'enregistrement de la base de données}
Response.Write ArrBooks [& Cint (INTINDEX) &] = '_
& strtitle & '; & vbcrlf
INTINDEX = INTINDEX 1
{Passez à l'enregistrement suivant dans la base de données}
Boucle
…
Faites quelque chose ici sur le client avec le tableau des titres de livre
…
// Arrête de cacher le code
->
</cript>
Ce code client généré par le code du programme ASP côté serveur crée un tableau de titres de livre lorsque le client est en cours d'exécution. L'erreur de script client généré simultanément apparaît dans la boîte de dialogue d'erreur du navigateur. La raison de l'erreur est que les tableaux nommés d'après ArrBooks sont créés par le code JavaScript lors de l'exécution du client et ne peuvent accepter que 9 titres de livre; tandis que le code côté serveur peut très probablement générer plus de 9 titres de livre, ce qui est déterminé par le nombre d'enregistrements dans la base de données source. Cela équivaut au code client suivant:
<Script Language = JScript Runat = Client>
<! - Masquer le code aux anciens navigateurs
var arRBooks = nouveau tableau (10) // l'indice le plus élevé disponible sera
ArrBooks [0] = 'Instant JavaScript';
ArrBooks [1] = 'Professional ASP 3.0 Programming';
ArrBooks [2] = 'ADO 2.5 Programmers Reference';
…
etc.
…
Arrbooks [9] = 'Techniques ASP pour les webmasters';
ArrBooks [10] = 'Référence des programmateurs ASP'; // <- l'erreur côté client se produit ici
ArrBooks [11] = 'Adsi CDO Programming';
ArrBooks [12] = 'Professional MTS et MSMQ Programmation';
…
Faites quelque chose ici sur le client avec le tableau des titres de livre
…
// Arrête de cacher le code
->
</cript>
Cette page ne peut fonctionner correctement qu'après la correction. Il peut être augmenté en augmentant la taille du tableau ou en contrôlant le nombre d'enregistrements de la base de données.
7.3 Empêcher les erreurs
J'ai vu différents types d'erreurs qui peuvent se produire ci-dessus, et j'ai l'impression de rechercher des erreurs. Voici quelques considérations sur la façon d'éviter d'introduire des erreurs dans les programmes. Bien qu'il ne soit pas garanti que le programme écrit est exempt d'erreurs, de nombreuses techniques résumées ici sont résumées.
Partager: comment convertir les pages Web dynamiques ASP en pages statiques HTM Il y a quelque temps, une page ASP a été très lente à exécuter, avec beaucoup de visiteurs, et il n'a pas été modifié fréquemment, il était donc trop paresseux pour en faire directement statique. Chaque fois que je devais le télécharger depuis le serveur pour le modifier, je devais trouver un moyen de convertir la page ASP en une page statique HTM. J'ai déjà vu ça avant