При открытии страницы asp странице необходимо получить доступ к базе данных, а затем отобразить содержимое, соответствующее требованиям на странице. Если в базе данных много записей, скорость доступа к странице будет относительно низкой. Для повышения скорости доступа к странице можно использовать следующие методы.
Совет первый: повысьте эффективность использования коллекции запросов.
Доступ к коллекции ASP для извлечения значения — трудоемкий и трудоемкий процесс. Поскольку эта операция включает серию поисков в связанных коллекциях, она выполняется намного медленнее, чем доступ к локальной переменной. Поэтому, если вы планируете использовать значение из коллекции Request несколько раз на странице, вам следует рассмотреть возможность сохранения его как локальной переменной.
Например, напишите код в следующем виде, чтобы ускорить обработку скриптового движка:
Скопируйте код кода следующим образом:
strTitle=Запрос.Форма("Название")
strFirstName=Запрос.Форма("Имя")
strLastName=Запрос.Форма("Фамилия")
Если Len(strTitle) Тогда strTitle=strTitle & " "
Если strFirstName="" Тогда strFullName=strTitle & " " & strLastName
Иначе если Len(strFirstName)=1 Тогда
strFullName=strTitle & strFirstName & "." & strLastName
Еще
strFullName=strTitle & strFirstName & " " & strLastName
Конец, если
Совет 2. Получите прямой доступ к соответствующей коллекции.
Если у вас нет выбора, не используйте strPage=Request("page") для получения параметров, так как при этом будет выполняться поиск по всей коллекции по порядку: QueryString, Form, Cookies, ClientCertificate, ServerVarible, пока не будет найдено первое совпадение. ценить. Это менее эффективно, чем прямой доступ к соответствующей коллекции, и небезопасно, если нет абсолютной гарантии, что значение не появится в другой коллекции.
Например, вам может потребоваться найти имя веб-сервера, который выполняет запрос клиента. Это достигается путем поиска «SERVER_NAME» в коллекции Request.ServerVarables, которая появляется в каждом запросе. Однако если другие коллекции также содержат значения с именем «SERVER_NAME» (имена ключей не чувствительны к регистру), вы получите неправильные результаты при использовании Request(»server_Name»). Таким образом, по возможности, к соответствующей коллекции следует обращаться напрямую.
Совет 3. Используйте свойство Response.IsClientConnected перед трудоемкими операциями.
Использование Response.IsClientConnected — это полезный способ проверить, подключен ли пользователь к серверу и загружает ли веб-страницу, созданную ASP. Если пользователь отключается или прекращает загрузку, нам больше не придется тратить ресурсы сервера на создание веб-страницы, поскольку содержимое буфера будет удалено IIS. Итак, для страниц, которые требуют много времени для вычислений или используют много ресурсов, стоит на каждом этапе проверять, находится ли посетитель в автономном режиме:
Скопируйте код кода следующим образом:
… Код для создания первой части страницы
Если Response.IsClientConnected Тогда
Ответ.Flush
Еще
Ответ.Конец
Конец, если
… Код для создания следующей части страницы
Совет 4. Оптимизируйте операции ADO в ASP
Вообще говоря, данные представляют собой фактическое содержимое веб-сайта. Поэтому очень полезно оптимизировать операции ADO, чтобы ускорить выполнение кода ASP:
а. Выберите только необходимые столбцы. При открытии набора записей ADO не следует автоматически использовать имя таблицы (т. е. SELECT *), если только вам не нужно получить все столбцы. Использование отдельных столбцов означает, что объем данных, отправляемых на сервер или получаемых с него, уменьшается. Даже если вам нужно использовать все столбцы, присвоение имени каждому столбцу по отдельности обеспечит наилучшую производительность, поскольку серверу не нужно интерпретировать имена столбцов.
б. Используйте хранимые процедуры, когда это возможно. Хранимые процедуры — это предварительно скомпилированные программы, содержащие подготовленный план выполнения, поэтому они выполняются быстрее, чем операторы SQL.
c. Используйте соответствующие шаблоны курсора и блокировки. Если все, что вам нужно сделать, это прочитать данные из набора записей и отобразить их на экране, тогда используйте набор записей по умолчанию, предназначенный только для пересылки и только для чтения. Чем меньше работы ADO приходится выполнять для сохранения сведений о записях и блокировках, тем выше производительность.
d. Используйте переменные объекта. Верный способ повысить производительность при переборе набора записей — использовать объектные переменные, указывающие на члены коллекции. Например:
Скопируйте код кода следующим образом:
Пока это не RsGc.EOF
Response.Write "Имя проекта:" & RsGc("GcMC") & "(Код проекта:" & RsGc("GcCode") & ")"
RsGc.MoveNext
Венд
Для ускорения выполнения это можно переписать в виде следующего кода:
Скопируйте код кода следующим образом:
set GcMc=RsGc("GcMc")
set GcCode=RsGc("GcCode")
Пока нет ответа rsGc.EOF. Напишите «Имя проекта:» & GcMc & «(Код проекта: « & GcCode & «)»
RsGc.MoveNext
Венд
Новый код устанавливает ссылку на объектную переменную, поэтому объектную переменную можно использовать вместо фактической переменной, а это означает, что обработчику сценария требуется меньше работы, поскольку в коллекции меньше индексов.
Совет 5. Не смешивайте скриптовые движки
Мы знаем, что на страницах ASP можно использовать как VBScript, так и JScript. Но не рекомендуется одновременно использовать JScript и VBScript на одной странице. Поскольку сервер должен создать экземпляр и попытаться кэшировать два (а не один) механизма сценариев, это в некоторой степени увеличивает нагрузку на систему. Поэтому из соображений производительности не следует смешивать несколько механизмов сценариев на одной странице.