Was das Wörterbuchobjekt des Skripts betrifft, glaube ich tatsächlich, dass MS ursprünglich von dynamischen Skriptsprachen wie Python übernommen und für Clients entwickelt wurde. Zu diesem Punkt können Sie sich auf Seite 137 des ASP Programmer's Reference Manual beziehen Ein Wörterbuchobjekt auf Sitzungsebene verringert die Systemleistung, während das Speichern eines Wörterbuchobjekts auf Anwendungsebene zum Absturz des Webservers führt. Mehr dazu werde ich nicht sagen.
Jetzt müssen wir überlegen, welche Designfehler es gibt, wenn sich das Wörterbuchobjekt auf einer einzelnen Seite befindet:
Sie können dies versuchen
set rs=server.createobject(adodb.recordset)
sql=select * aus der Tabelle
rs.open sql,conn,1,3
set ttt=server.createobject(scripting.dictionary)
ttt.add xxx,rs(field)
setze rs=nichts
liu=ttt(xxx) 'Was wirst du finden, wenn du das tust? Auf der Asp-Seite erfahren Sie, dass ein Unfall passiert ist! ! ! Das ist sehr überraschend. Was ist ein Unfall? Das ist schwer zu sagen. Später, nach mehrmaligem Testen, fand ich heraus, dass der Wert von rs(field) nicht direkt an das Wörterbuchobjekt übergeben werden kann. Nach wiederholter Recherche kam ich zu folgendem Schluss: Das Wörterbuch speichert die Speicheradresse von rs(field). In diesem Fall ist das, was ich gerade geschrieben habe, zweifellos eine Katastrophe. Die Lösung besteht darin, dieses rs(field) in eine Variable einzufügen. Aber kann das Wörterbuchobjekt nicht ein Objekt speichern, das durch nichts geändert wurde? Das ist eine große Frage, deshalb habe ich dieses Programm noch einmal geschrieben. Sie können es als try.htm speichern, um den Effekt zu sehen.
<script language='vbscript'>
set ttt=createobject(scripting.dictionary)
ttt.add liu,uuu
set ddd=createobject(scripting.dictionary)
ddd.add ppp,ttt
setttt=nichts
bbb=ddd(ppp)(liu)
Warnung(bbb)
</script>
Was ist das Ergebnis? Sie werden feststellen, dass es kein Problem mit der Warnungs-Uuu-Beschreibung gibt. Dies bedeutet, dass das Wörterbuchobjekt tatsächlich ein anderes ersetzt
Das gesamte Wörterbuchobjekt wird geklont, was weiter bestätigt, was in Wroxs Buch steht, dass das Wörterbuchobjekt bei der Entwicklung von MS verwendet wurde.
Eigentlich ist es für den Kunden, das meine ich damit.
Ich kann Ihnen auch den Code zum Kombinieren von Arrays und Wörterbüchern zeigen.
<script language='vbscript'>
i=1
Bildname=(xxx)
str=set & pic_ & i & =createobject( & & scripting.dictionary & & )
ausführen(str)
str=pic_ & i & .add & & Bildname & & , & & Bildname &
ausführen(str)
dimttt()
redimttt(5)
ttt(0)=uuu
pic_1.Element hinzufügen,ttt
liu=pic_1(Bildname)
set pic_2=createobject(scripting.dictionary)
erasettt
redimttt(5)
ttt(0)=iii
nnn=pic_1(item)(0)
pic_2.add rrr,ttt
zzz=pic_2(rrr)(0)
Warnung(liu)
Warnung(nnn)
Warnung(zzz)
</script>