Что касается объекта словаря сценария, я на самом деле думаю, что MS изначально заимствовала языки динамических сценариев, такие как Python, и была разработана для клиентов. По этому вопросу вы можете обратиться к странице 137 Справочного руководства программиста ASP от Wrox. объект словаря на уровне сеанса снизит производительность системы, а сохранение объекта словаря на уровне приложения приведет к сбою веб-сервера, больше об этом не скажу.
Теперь нам нужно рассмотреть, какие недостатки дизайна возникают, когда объект словаря находится на одной странице:
Вы можете попробовать это
установите rs=server.createobject(adodb.recordset)
sql=выбрать * из таблицы
rs.open sql,conn,1,3
set ttt=server.createobject(scripting.dictionary)
ttt.add xxx,rs(поле)
установить rs=ничего
liu=ttt(xxx) 'Что вы обнаружите, когда сделаете это? Страница asp сообщит вам, что произошел несчастный случай! ! ! Это очень удивительно. Что такое несчастный случай? Трудно сказать. Позже, после повторного тестирования, я выяснил, что это связано с тем, что значение rs(field) нельзя напрямую передать объекту словаря. После повторных исследований я пришел к следующему выводу: словарь хранит адрес памяти. rs(field). В данном случае то, что я только что написал, несомненно, является катастрофой. Решение состоит в том, чтобы поместить это rs (поле) в переменную. Но разве объект словаря не может сохранить объект, который ничем не изменился? Это большой вопрос, поэтому я написал эту программу еще раз. Вы можете сохранить ее как try.htm, чтобы увидеть эффект.
<script Language='vbscript'>
set ttt=createobject(scripting.dictionary)
ттт.добавь Лю,ууу
set ddd=createobject(scripting.dictionary)
ддд.добавить ppp,ттт
setttt=ничего
bbb=ddd(ppp)(лю)
предупреждение (ббб)
</скрипт>
Каков результат? Вы обнаружите, что с описанием предупреждения uuu проблем нет. Это означает, что объект словаря фактически заменяет другой.
Весь объект словаря клонируется, что дополнительно подтверждает то, что написано в книге wrox о том, что объект словаря использовался при разработке ms.
На самом деле это для клиента, вот что я говорю.
Я также могу показать вам код объединения массивов и словарей.
<script Language='vbscript'>
я = 1
имя_изображения=(ххх)
str=set & pic_ & i & =createobject( & & scripting.dictionary & & )
выполнить (строка)
str=pic_ & i & .add & & имя_изображения & & , & & имя_изображения &
выполнить (строка)
димттт()
редимттт(5)
ттт(0)=ууу
pic_1.добавить элемент, ттт
Лю=pic_1(имя изображения)
set pic_2=createobject(scripting.dictionary)
Эреттт
редимттт(5)
ттт(0)=iii
nnn=pic_1(элемент)(0)
pic_2.добавь ррр,ттт
zzz=pic_2(ррр)(0)
оповещение (лю)
предупреждение(ннн)
оповещение (ззз)
</скрипт>