Замените огромный оператор Case в Classic ASP - PullRequest
2 голосов
/ 08 сентября 2008

У меня есть более 200 операторов case в Classic ASP, который выходит из-под контроля. Он устанавливает 5 переменных, в зависимости от того, какой случай выбран. Адрес, Телефон, Имя и т. Д. Просто задайте переменные и ничего больше в каждом случае.

Базы данных или файлы не являются опцией для этого приложения.

Исходя из мира Perl, я бы использовал хеш для хранения этой информации.

Ответы [ 7 ]

3 голосов
/ 08 сентября 2008

Брайан, классическим ASP-эквивалентом Perl-хеша является Scripting.Dictionary объект.

3 голосов
/ 08 сентября 2008

Выход из-под контроля? Я думаю, что это уже вышло из-под контроля!

Не можете ли вы распределить дела по общим областям 'x' и разбить их на вспомогательные процедуры?

1 голос
/ 09 сентября 2008

Тот факт, что вы не можете перенести это в базу данных или текстовый файл, представляет собой небольшую проблему, поскольку они будут лучшим решением для этого типа данных. Однако, если вам нужно иметь это в коде, вы всегда можете попробовать поместить его в матрицу, которую вы предопределите. Тогда вы могли бы предоставить функцию, которая возвращает данные из данной строки в матрице.

1 голос
/ 09 сентября 2008

Многие люди используют VBScript для Classic ASP, но вы можете использовать JavaScript / JScript на сервере в качестве альтернативы. На самом деле, это мой предпочтительный способ работы с классическим ASP перед окончательным переходом на .NET (за исключением некоторых случаев, вам придется смешивать в VBScript для особых случаев, т.е. Это обеспечит вам лучшую поддержку ООП по сравнению с VBScript. Может быть, вы можете попробовать рефакторинг этого типа стратегии позже. Думаю, стоит подумать о лучшем обслуживании в долгосрочной перспективе.

1 голос
/ 09 сентября 2008

Зависит от того, что вы хотите для производительности.

Оператор case некрасив, но не использует память, которая должна быть выделена.

Однако вы можете создать класс для ваших полей и загрузить их экземпляры в словарь. Выполните эту операцию в скрипте global.asp, чтобы это произошло только один раз. Сохраните словарь в глобальной коллекции asp, чтобы он выделялся только один раз, но использовался при каждом вызове страницы.

Мои извинения за то, что я не стал слишком конкретным ... это было давно.

0 голосов
/ 13 сентября 2008

Словарь сценариев - лучший вариант ИМХО .

0 голосов
/ 09 сентября 2008

Это должно быть сделано с базой данных, но, поскольку вы сказали, что это не вариант, ничего, что вы напишете, не будет менее сложным, чем оператор switch, поскольку все это необходимо для того, чтобы жить в вашем коде (согласно вашим условиям без БД и без файлов).

Я имею в виду, вы можете использовать электронную таблицу Excel, если идея базы данных слишком сложная , но технически это тоже будет файл!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...