При разработке приложений важно обеспечить не только их высокую производительность, но и удобство использования. Бывает, что эти две цели взаимно исключают друг друга. В данной статье я покажу, как при помощи одной простой страницы Active Server Pages (ASP) добиться высокой производительности приложения, сохранив простоту его применения. В качестве примера я буду использовать небольшое приложение, которое извлекает и выводит на экран данные из таблицы контактов Contact. Эта таблица является частью большого учебного приложения, работающего в корпоративной сети и обеспечивающего потребности отдела продаж и руководства некоторой компании, которая занимается обучением пользователей. Это приложение выводит на экран список из таблицы контактов Contact, размещенной в SQL Server; предоставляет пользователям функции быстрого поиска нужных контактов и обеспечивает возможность манипулирования данными при помощи разнообразных сортировок. Помимо этого приложение должно обладать высокой производительностью, то есть быстро предоставлять нужные результаты. ASP позволяет легко достичь всех этих целей, поскольку дает возможность создавать при помощи сценария настраиваемые страницы. Я воспользовался языком VBScript, потому что он прост в применении и широко распространен в приложениях для Web. При помощи сценария пользователи смогут легко производить в рамках приложения разнообразные действия, например, сортировку. В листинге 1 показан код T-SQL, который создает таблицу контактов Contact. ЛИСТИНГ 1: Создание таблицы контактов Contact. CREATE TABLE [dbo].[Contact] ( [ContactID] [int] IDENTITY (1, 1) NOT NULL , [ADTPID] [char] (10) NULL , [InterestListFlag] [char] (1) NULL , [InstructorFlag] [char] (1) NULL , [PrimaryContact] [char] (1) NULL , [TrainingProspect] [char] (1) NULL , [ConsultingProspect] [char] (1) NULL , [CompanyName] [char] (100) NULL , [FirstName] [char] (50) NULL , [LastName] [char] (70) NULL , [Title] [char] (150) NULL , [Address1] [char] (150) NULL , [Address2] [char] (100) NULL , [City] [varchar] (75) NULL , [StateProvince] [char] (100) NULL , [ZIP] [char] (60) NULL , [Country] [varchar] (75) NULL , [Phone] [char] (40) NULL , [MobilePhone] [char] (40) NULL , [Pager] [char] (40) NULL , [Fax] [char] (40) NULL , [Email] [char] (70) NULL , [Comments] [text] NULL , [DateAdded] [datetime] NULL , [PendingVerification] [char] (1) NULL , [WebSite] [char] (100) NULL , [MetContactAt] [char] (100) NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] В листинге 2 приведен файл database.asp. Он содержит коды ADO и ASP, необходимые для доступа к базе данных, в состав которой входит таблица Contact. Представление данных о контактах Первая проблема, которую предстояло решить, состояла в выборе способа представления данных о контактах. Мы не хотели при первом посещении страницы пользователем intranet показывать всю информацию о контактах, поскольку таблица контактов Contact была очень большой и продолжала быстро расти. Показ всех данных, содержащихся на странице, не только истощал бы SQL Server, но и приводил к передаче очень больших объемов данных через сеть, замедляя работу страницы и внося дополнительные задержки в процесс поиска нужной информации и ее сортировки. Поэтому мы провели фильтрацию данных и ограничили первоначально показываемые сведения лишь теми лицами из списка контактов, чьи фамилии начинались с буквы А. Процесс фильтрации предоставлял пользователям три возможности: выбрать один из показанных контактов, начинающихся с буквы А; выбрать какой-либо другой контакт, введя первую букву его фамилии; или же выбрать все контакты, All Contacts. Чтобы провести сортировку при таком представлении, пользователям достаточно щелкнуть по любому заголовку столбца в таблице. А при работе в режиме редактирования Edit можно открыть сведения о каком-либо контакте, щелкнув по нему.
|