ASP (Active Server Page) - это динамическая технология разработки веб -страниц, основанная на платформе PWS (персональный веб -сервер) и IIS (Интернет -сервер), запущенная Microsoft, которая теперь становится более зрелой и идеальной. Здесь у нас есть только несколько простых дискуссий об оптимизации кода.
8 Методы оптимизации кодирования ASP:
1. Объявит переменные VBScript
В ASP VBScript обеспечивается сильной поддержкой и может легко интегрировать функции и методы VBScript, что обеспечивает большое удобство для расширения существующих функций ASP. Поскольку концепция типов переменных была размыта в ASP, многие программисты привыкли не объявлять переменные VBScript во время взаимодействия между ASP и VBScript, что увеличивает бремя отображения сервера и, таким образом, влияет на скорость запроса ответа сервера.
Ввиду этого мы можем заставить пользователя выполнять объявления переменных в VBScript так же, как мы заставляем пользователя выполнять объявления переменных в VB. Метод реализации состоит в том, чтобы разместить вариант <% explicit%> в начале линии программы ASP.
2. кодировать адрес URL -адреса
Когда мы используем ASP для динамического генерирования адреса URL -адреса с параметрами и прыжком, он нормально разбираться в IE, но при просмотре NetScrape возникают ошибки следующим образом:
- Httperror400
- 400badrequest
- DuetomalformedSyntax, по себе, не могло быть невозможно понять.
- Theclient должен носить нормы -экипировку безмодификации.
Решение состоит в том, чтобы использовать метод Urlencode встроенного объекта сервера для URL, кодируя сгенерированные параметры URL.
- <%
- Url = xur.asp
- var1 = username = & server.urlencode (xur)
- var2 = & company = & server.urlencode (xurstudio)
- var3 = & phone = & server.urlencode (021-53854336-186)
- response.redirecturl &? & var1 & var2 & var3
- %>
3. Очистить объект
После использования объекта сначала используйте метод закрытия, чтобы освободить системные ресурсы, занятые объектом; В то время я разбил свой IIS, создав более 100 Recordsets на странице без четких объектов. В следующем коде используется контент базы данных для создания раскрывающегося списка. Пример кода заключается в следующем:
- <%mydsn = dsn = xur; uid = xur; pwd = xur
- mysql = select*fromauthorswhereau_id < 100
- setConntemp = server.createObject (adodb.connection)
- conntemp.openmydsn
- setrStemp = conntemp.execute (mysql)
- ifrstemp.eofthen
- Response.write Database пуста
- response.writemysql
- conntemp.close
- setConntemp = ничего
- response.end
- Endif%>
- <%dountilrStemp.eof%>
- <%
- rStemp.movenext
- петля
- rstemp.close
- SetrStemp = ничего
- conntemp.close
- setConntemp = ничего
- %>
4. Создать запрос SQL с использованием строк
Использование строк для установления запросов не ускоряет скорость анализа сервера. Но все еще рекомендуется использовать строки вместо простых операторов запроса для запроса. Преимущество этого заключается в том, что он может быстро обнаружить проблему программы, тем самым облегчая и эффективно генерировать программу. Примеры следующие:
- <%mysql = select*
- mysql = mysql & от empullishers
- mysql = mysql & hingestate = 'ny'
- response.writemysql
- setrStemp = conntemp.execute (mysql)
- rstemp.close
- SetrStemp = ничего
- %>
5. Используйте вариант, чтобы выбрать условие
При выборе условного выбора попробуйте использовать операторы вариантов и избежать использования операторов IF. Использование операторов корпуса может сделать программу проходить и выполнять быстрее, чем операторы IF. Примеры следующие:
- <%
- Fori = 1to1000
- n = i
- Response.writeaddsuffix (n) и <br>
- СЛЕДУЮЩИЙ
- %>
- <%
- FunctionAddsuffix (num)
- numpart = справа (num, 1)
- SELECTCASENUPPART
- Case1
- Ifinstr (num, 11) затем
- num = num & th
- ЕЩЕ
- num = num & st
- Эндиф
- Case2
- Ifinstr (num, 12) затем
- num = num & th
- ЕЩЕ
- num = num & nd
- Эндиф
- Случай 3
- Ifinstr (num, 13) затем
- num = num & th
- ЕЩЕ
- num = num & rd
- Эндиф
- Случай 4
- num = num & th
- Caseelse
- num = num & th
- Endselect
- AddSuffix = num
- Конечная функция
- %>
6. Используйте константы, определенные в файле adovbs.inc, чтобы открыть набор записей
При открытии набора записей вы можете определить тип курсора и тип блокировки, которые открывает набор записей. В файле Adovbs.inc определены некоторые константы, чтобы определить эти типы. Файл adovbs.inc сохраняется в каталоге/inetpub/iissamples/iisamples. Ниже приведены несколько часто используемых типов курсоров и типов блокировки.
Курсор: Adassenfowardonly Cursor может двигаться вперед; другими пользователями.
Тип блокировки: Adlockreadoney не может изменить записи в наборе записей;
- <!-#includevirtual =/adovbs.inc->
- <%
- connectMe = dsn = xur; uid = xur; pwd = xur
- sqltemp = select*formpublisherswherename = 'xur'
- setrStemp = server.createObject (adodb.recordset)
- rstemp.opensqltemp, connectme, adpertivesatic, adlockoptimstic
- response.writerstemp.recordCount & Recordsin <br> & sqltemp
- rstemp.close
- SetrStemp = ничего
- %>
7. Избегайте определения объекта в файле Global.ASA
Поскольку на содержимое в файле Global.ASA можно ссылаться все файлы на сайте, несомненно, определение объектов в файле Global.ASA может сохранить много дублирования. Например, в функции Application_onstart в Global.asa сделано следующее определение:
- <%subapplication_onstart
- setApplication (theconn) = server.createObject (adodb.connection)
- Endsub%>;
Это позволяет вам делать аналогичные ссылки в любом коде на сайте:
- <%
- mysql = select*formpublisherswherestate = 'xur'
- setrStemp = Application (theConn) .execute (mysql)
- %>
Аналогичным образом, объект Set Record может быть создан в функции session_onstart
- <%sepsions_onstart
- setSession (rStemp) = server.createObject (adodb.recordset)
- Endsub%>
Затем на сайте сделаны следующие цитаты:
- <%
- mysql = select*formpublisherswherestate = 'xur'
- setSession (rStemp) = conntemp.execute (mysql)
- %>
Однако это также оказывает большое негативное влияние. производительность. .
Решение: Создайте страницу ASP для определения объектов, и введите эту страницу ASP на странице, на которой необходимо вызвать эти объекты. Предполагая, что имя страницы ASP определенного объекта.
При введении страниц лучше всего не включать в себя оператор <%@language = vbscript%> в файле ASP. Потому что в файле ASP может быть только один язык анализа сценария, определяемый @.
8. Безопасность
ASP предоставляет хороший механизм защиты кода, и весь код ASP выполняется на стороне сервера и возвращает только результат выполнения клиентского кода. Несмотря на это, в старой версии IIS вы можете просмотреть исходный код ASP после имени файла :: $ Data, которые уже попадают в объем безопасности веб -сервера и не находятся в рамках этой статьи. Ниже приведены две простые меры предосторожности.
Хотя рекомендуется ввести файлы с Inc ASP в качестве расширения, все еще рекомендуется использовать ASP в качестве расширения для введения файлов здесь. Когда эти коды работают на веб -сервере с плохим механизмом безопасности, вы можете просмотреть содержимое импортированного файла, просто введя адресную строку (Inc - это расширение). Тип (например, INC) не определен, файл отображается в исходном коде.
Не помещайте файл базы данных в структуру веб -сайта, чтобы, когда злоумышленник получает путь к базе данных, он может легко получить базу данных, а затем произвольно изменять контент базы данных. Лучшим подходом является создание DSN (имя источника даты) для базы данных и непосредственно получить доступ к DSN при доступе к базе данных.
Каждый из приведенных выше восьми методов оптимизации кодирования ASP очень важен и требует, чтобы все испытали это тщательно и по -настоящему понять, чтобы стать их собственным делом.