Em relação ao objeto de dicionário do script, na verdade acho que o MS inicialmente emprestou linguagens de script dinâmicas, como Python, e foi desenvolvido para clientes. Para este ponto, você pode consultar a página 137 do Manual de referência do programador ASP do wrox. um objeto de dicionário no nível da sessão reduzirá o desempenho do sistema, enquanto salvar um objeto de dicionário no nível do aplicativo fará com que o servidor web trave. Não direi mais sobre isso.
Agora temos que considerar quais falhas de design existem quando o objeto do dicionário está em uma única página:
Você pode tentar isso
definir rs=server.createobject(adodb.recordset)
sql = selecione * da tabela
rs.open sql,conn,1,3
definir ttt=server.createobject(scripting.dictionary)
ttt.add xxx,rs(campo)
definir rs = nada
liu=ttt(xxx) 'O que você encontrará ao fazer isso? A página asp informará que ocorreu um acidente! ! ! Isso é muito surpreendente. É difícil dizer. Mais tarde, após repetidos testes, descobri que é porque o valor de rs(field) não pode ser fornecido diretamente ao objeto do dicionário. Após repetidas pesquisas, cheguei à seguinte conclusão: o dicionário armazena o endereço da memória. de rs(campo). Neste caso, o que acabei de escrever é sem dúvida um desastre. A solução é colocar esse rs (campo) em uma variável. Mas o objeto do dicionário não pode salvar um objeto que não foi alterado? Esta é uma grande questão, então escrevi este programa novamente. Você pode salvá-lo como try.htm para ver o efeito.
<linguagem de script='vbscript'>
definir ttt=createobject(scripting.dictionary)
ttt.add liu,uuu
definir ddd=createobject(scripting.dictionary)
ddd.add ppp,ttt
settt = nada
bbb=ddd(ppp)(liu)
alerta (bbb)
</script>
Qual é o resultado? Você descobrirá que não há problema com a descrição do alerta uuu. Isso significa que o objeto do dicionário na verdade substitui outro.
Todo o objeto de dicionário é clonado, o que verifica ainda mais o que está escrito no livro de wrox de que o objeto de dicionário foi usado quando o ms foi desenvolvido.
Na verdade, é para o cliente, é o que estou dizendo.
Também posso mostrar o código para combinar arrays e dicionários.
<linguagem de script='vbscript'>
eu=1
nome da foto=(xxx)
str=set & pic_ & i & =createobject( & & scripting.dictionary & & )
executar (str)
str=pic_ & i & .add & & picname & & , & & picname &
executar (str)
dimttt()
redimttt(5)
ttt(0)=uuu
pic_1.adicionar item,ttt
liu=pic_1(nome da foto)
definir pic_2=createobject(scripting.dictionary)
apagar
redimttt(5)
ttt(0)=iii
nnn=pic_1(item)(0)
pic_2.add rrr,ttt
zzz=pic_2(rrr)(0)
alerta (liu)
alerta (nnn)
alerta (zzz)
</script>