Con respecto al objeto de diccionario del script, de hecho creo que MS inicialmente tomó prestado de lenguajes de scripting dinámicos como Python y fue desarrollado para clientes. Para este punto, puede consultar la página 137 del Manual de referencia para programadores ASP de wrox. un objeto de diccionario a nivel de sesión reducirá el rendimiento del sistema, mientras que guardar un objeto de diccionario a nivel de aplicación provocará que el servidor web falle. No diré más sobre esto.
Ahora tenemos que considerar qué fallos de diseño hay cuando el objeto del diccionario está en una sola página:
Puedes probar esto
establecer rs=servidor.createobject(adodb.recordset)
sql=seleccionar * de la tabla
rs.open sql, conexión, 1,3
establecer ttt=servidor.createobject(scripting.diccionario)
ttt.añadir xxx,rs(campo)
establecer rs = nada
liu=ttt(xxx) '¿Qué encontrarás cuando hagas esto? ¡La página asp le dirá que ocurrió un accidente! ! ! Esto es muy sorprendente. ¿Qué es un accidente? Es difícil decirlo. Más tarde, después de repetidas pruebas, descubrí que se debe a que el valor de rs (campo) no se puede asignar directamente al objeto del diccionario. Después de repetidas investigaciones, llegué a la siguiente conclusión: el diccionario almacena la dirección de memoria. de rs (campo) En este caso, lo que acabo de escribir es sin duda un desastre. La solución es poner este rs (campo) en una variable. ¿Pero no puede el objeto del diccionario guardar un objeto que no ha sido modificado por nada? Esta es una gran pregunta, así que escribí este programa nuevamente. Puedes guardarlo como try.htm para ver el efecto.
<lenguaje de escritura='vbscript'>
establecer ttt=createobject(scripting.dictionary)
ttt.añadir liu,uuu
establecer ddd=createobject(scripting.dictionary)
ddd.añadir ppp,ttt
setttt=nada
bbb=ddd(ppp)(liu)
alerta (bbb)
</script>
¿Cuál es el resultado? Verá que no hay ningún problema con la descripción de la alerta uuu. Esto significa que el objeto del diccionario en realidad reemplaza a otro.
Se clona todo el objeto del diccionario, lo que verifica aún más lo que está escrito en el libro de wrox de que el objeto del diccionario se utilizó cuando se desarrolló ms.
En realidad es para el cliente, eso es lo que digo.
También puedo mostrarte el código para combinar matrices y diccionarios.
<lenguaje de escritura='vbscript'>
yo=1
nombre de imagen=(xxx)
str=set & pic_ & i & =createobject( & & scripting.dictionary & & )
ejecutar (cadena)
str=pic_ & i & .add & & nombre_pic & & , & & nombre_pic &
ejecutar (cadena)
dimtt()
redimttt(5)
ttt(0)=uuu
pic_1.añadir elemento,ttt
liu=pic_1(nombre de imagen)
establecer pic_2=createobject(scripting.dictionary)
borrado
redimttt(5)
ttt(0)=iii
nnn=pic_1(elemento)(0)
pic_2.añadir rrr,ttt
zzz=imagen_2(rrr)(0)
alerta (liu)
alerta (nnn)
alerta (zzz)
</script>