Concernant l'objet dictionnaire du script, je pense en fait que MS a initialement emprunté à des langages de script dynamiques tels que Python, et qu'il a été développé pour les clients. Pour ce point, vous pouvez vous référer à la page 137 du manuel de référence du programmeur ASP de wrox. L'enregistrement d'un objet dictionnaire au niveau de la session réduira les performances du système, tandis que l'enregistrement d'un objet dictionnaire au niveau de l'application entraînera un crash du serveur Web. Je n'en dirai pas plus.
Nous devons maintenant considérer les défauts de conception lorsque l’objet dictionnaire se trouve sur une seule page :
Tu peux essayer ça
définir rs=server.createobject(adodb.recordset)
sql=sélectionner * dans la table
rs.open sql, conn, 1,3
set ttt=server.createobject(scripting.dictionary)
ttt.ajouter xxx,rs(champ)
définir rs = rien
liu=ttt(xxx) 'Qu'allez-vous trouver en faisant cela ? La page asp vous dira qu'un accident s'est produit ! ! ! C'est très surprenant. Qu'est-ce qu'un accident ? C'est difficile à dire. Plus tard, après des tests répétés, j'ai découvert que c'était parce que la valeur de rs(field) ne pouvait pas être directement donnée à l'objet dictionnaire. Après des recherches répétées, je suis arrivé à la conclusion suivante : le dictionnaire stocke l'adresse mémoire. de rs(field). Dans ce cas, ce que je viens d'écrire est sans aucun doute un désastre. La solution est de mettre ce rs (field) dans une variable. Mais l'objet dictionnaire ne peut-il pas sauvegarder un objet qui n'a été modifié par rien ? C'est une grande question, j'ai donc réécrit ce programme. Vous pouvez l'enregistrer sous try.htm pour voir l'effet.
<langage de script='vbscript'>
set ttt=createobject(scripting.dictionary)
ttt.ajouter Liu,uuu
set ddd=createobject(scripting.dictionary)
ddd.ajouter ppp,ttt
settt=rien
bbb=ddd(ppp)(liu)
alerte (bbb)
</script>
Quel est le résultat ? Vous constaterez qu'il n'y a aucun problème avec la description de l'alerte uuu. Cela signifie que l'objet dictionnaire en remplace un autre.
Le clone complet de l'objet dictionnaire arrive, ce qui vérifie en outre ce qui est écrit dans le livre de Wrox selon lequel l'objet dictionnaire a été utilisé lors du développement de ms.
C'est en fait pour le client, c'est ce que je dis.
Je peux également vous montrer le code permettant de combiner des tableaux et des dictionnaires.
<langage de script='vbscript'>
je = 1
nom de la photo=(xxx)
str=set & pic_ & i & =createobject( & & scripting.dictionary & & )
exécuter(str)
str=pic_ & i & .add & & picname & & , & & picname &
exécuter(str)
dimtt()
redimttt(5)
ttt(0)=uuuu
pic_1.ajouter un élément, ttt
liu=pic_1(picname)
set pic_2=createobject(scripting.dictionary)
effacer
redimttt(5)
ttt(0)=iii
nnn=pic_1(élément)(0)
pic_2.add rrr,ttt
zzz=pic_2(rrr)(0)
alerte (liu)
alerte (nnn)
alerte (zzz)
</script>