Lors de l'écriture de programmes ASP, VBScript est généralement utilisé, mais ce n'est pas la seule option qui peut également être utilisée. Mais lors de l'utilisation de JScript comme langage d'ASP, il existe quelques inconvénients mineurs par rapport à l'utilisation de VBScript, tels que la méthode GetRows de RecordSet.
Lors de l'exploitation d'une base de données dans ASP, l'objet RecordSet est généralement utilisé. Si vous vous concentrez sur l'efficacité du programme, vous pouvez utiliser la méthode GetRows de l'objet RecordSet pour convertir l'objet jeu d'enregistrements en tableau. Le fonctionnement du tableau sera plus rapide. en utilisant l'objet RecordSet. La méthode MoveNext est beaucoup plus rapide et peut libérer l'objet RecordSet dès que possible après avoir retiré le tableau, réduisant ainsi l'utilisation des ressources. C'est également un moyen d'optimiser les performances ASP.
Dans VBScript, ce qui est obtenu en utilisant la méthode RecordSet.GetRows est un tableau à deux dimensions, et les données qu'il contient peuvent être obtenues en parcourant le tableau.
Supposons qu'il existe une base de données avec une table nommée mytable et trois champs nommés id, first et second.
Copiez le code comme suit :
'codebyxujiwei
" http://www.xujiwei.cn/
'Définir les variables
Dimconn,rs,données,recN,i
'Se connecter à la base de données
Setconn=Serveur.CreateObject(ADODB.Connection)
conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&_
Serveur.MapPath(data.mdb)
'Obtenir le jeu d'enregistrements
Setrs=conn.Execute(SELECTid,first,secondFROMmytable)
'Obtenir le tableau de données
data=rs.GetRows()
'Fermez le jeu d'enregistrements et libérez l'objet
rs.Fermer()
Setrs=Rien
'Obtenir le nombre d'enregistrements
recN=UBound(données,2)
'Données de sortie en boucle
Fori=0TorecN
'Notez que les indices du tableau commencent à 0
'Afficher les données dans la base de données
Réponse.Write(ID:&data(0,i)&,First:&data(1,i)&_
,Deuxième :&data(2,i)&<br/>)
Suivant
'Fermez la connexion à la base de données et libérez l'objet
conn.Close()
Setconn=Rien
%>
Mais lors de l'utilisation de JScript, il y aura un problème, c'est-à-dire que JScript n'a pas de tableau à deux dimensions. Si vous souhaitez utiliser les données obtenues par GetRows, vous devez convertir le tableau à deux dimensions dans VBScript en un tableau JScript. peut reconnaître, c'est-à-dire que les éléments sont Un tableau unidimensionnel de tableaux.
En JScript, le tableau obtenu à l'aide de la méthode GetRows possède une méthode toArray, qui peut être convertie en un tableau utilisable en JScript. Cependant, ce tableau est unidimensionnel, ce qui signifie que si l'on veut l'utiliser comme dans VBScript. , nous devons encore le faire nous-mêmes pour effectuer la conversion.
Après avoir consulté MSDN et recherché des articles connexes sur Internet, j'ai écrit une fonction de conversion de tableau pour utiliser la méthode GetRows dans JScript.
Copiez le code comme suit :
<scriptlangage=JScriptrunat=serveur>
//codeparxujiwei
//http://www.xujiwei.cn/
//Définir les variables
varconn,rs,vdata,données,recN,i;
//Se connecter à la base de données
conn=Serveur.CreateObject(ADODB.Connection);
conn.Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+
Serveur.MapPath(data.mdb));
//Obtenir le jeu d'enregistrements
rs=conn.Execute(SELECTid,first,secondFROMtest);
// Récupère le tableau de données et convertit-le en un type de tableau disponible en JScript
vdata=rs.GetRows().toArray();
//Obtenir le nombre de champs dans la table de données
i=rs.Fields.Count;
//Ferme le jeu d'enregistrements et libère l'objet
rs.Close();
rs=nul ;
//convertir le tableau
data=transArray(vdata,i);
//Obtenir le nombre d'enregistrements
recN=data.length;
//Données de sortie en boucle
pour(i=0;i<recN;i++){
// Notez que les indices du tableau commencent à 0
//Affiche les données dans la base de données
Réponse.Write(ID:+data[i][0]+,First:+data[i][1]+
,Deuxième :+data[i][2]+<br/>);
}
//Ferme la connexion à la base de données et libère l'objet
conn.Close();
conn = nul ;
//fonction de conversion de tableau
//parxujiwei
//Paramètres : arr-L'objet obtenu par la méthode GetRows et le tableau obtenu par la méthode toArray
//fieldslen-le nombre de champs dans la table de données
functiontransArray(arr,fieldslen){
varlen=arr.length/fieldslen,data=[],sp;
pour(vari=0;i<len;i++){
data[i]=newArray();
sp=i*fieldslen;
pour(varj=0;j<fieldslen;j++)
données[i][j]=arr[sp+j];
}
renvoyer des données ;
}
</script>
Pour certaines données qui ne sont pas fréquemment mises à jour mais qui ont été fréquemment utilisées, vous pouvez utiliser l'objet Application pour les mettre en cache après avoir obtenu avec succès le tableau de données, réduisant ainsi le nombre de requêtes sur la base de données et optimisant dans une certaine mesure les performances d'ASP.