Обзор
---- Теперь есть много статей, которые используют ASP для достижения динамической страниц. Однако в реальных инженерных приложениях объем исходных данных обычно очень большой, а обработка исходных данных является относительно медленной.
---- Существует два основных способа решения вышеуказанных задач: один из них-относительно фиксировать условия запроса, используйте относительно фиксированное условие для обработки исходных данных, генерируйте небольшую библиотеку количества данных. до середины. Хотя это улучшит производительность программы, она повлияет на гибкость программы, и сервер должен регулярно обрабатывать и поддерживать исходные данные. Другой способ - сохранить запрос на стороне сервера. Хотя это не может улучшить производительность запроса, серверный терминал может быстро реагировать при замене клиента. Реализация первого пути относительно проста.
Метод реализации
---- Сохраните результаты запроса на сервере в динамическом массиве, то есть объявьте двухмерный динамический массив во время процесса Session_onstart. Когда сервер получает приложение, представленное клиентом, первым судьей, является ли приложение условное расследование или изменение страницы. массив.
Реализация программы:
---- 1. Определите двухмерные массивы и другие переменные
| Ниже приведено фрагмент кода: Sub session_onstart Dim tempdb () Redim reperve tempdb (1,2) Session ("storedarray") = tempdb 'Определите массив сеансов Session ("iPagecount") = 0 Session ("ipageno") = 0 ... ... Конец суб |
---- 2. Вызовите процедуру хранения, чтобы вернуть данные
| Ниже приведено фрагмент кода: Sub getRcordset (strbbmc, strkssj, Strzzsj, strnodecode, strfxzl) «Параметры - это имена отчетов и различные ограничения Выберите Case strbbmc Дело "сводная форма транзакции" strcnn = "Provider = msdasql; dsn = sqldb; UID = SA; Установить objcnn = server.createObje ("adodb.connection") objcnn.commandtimeout = 9999999 objcnn.connectiontimeout = 99999999 objcnn.cursorlocation = Aduseclient Objcnn.open strcnn '' Откройте соединение Установить objrs = server.createObject ("Adodb.recordset") objrs.pagesize = ipageize objrs.cachesize = ipageize objrs.open "sszhatmlog '" & strkssj & "' ', '"" "" '"" "" Adlockreadonly, 1 'Выполните процедуру хранения до результатов запроса ... ... Конец суб |
---- 3. Сохранить результаты запроса в динамический массив
| Ниже приведено фрагмент кода: Sub SavereCordset () Если objrs.eof = false, то objrs.movelast Session ("irowCount") = objrs.rcordCount Session ("ifieldCount") = objrs.fields.count Session ("ipagecount") = objrs.pagecount Redim repreve temparray (сессия ("IRowCount"), Session ("ifieldCount"))) 'Temparray -это двухмерный динамический массив, Определите его размер в соответствии с размером набора записей objrs.movefirst icount = 0 делать, пока objrs.eof = false icount = icount + 1 для i = 1 к сеансу ("ifieldcount") Temparray (icount, i) = objrs.fields.item (I -1) следующий objrs.movenext петля Session ("Storedarray") = Temparray objrs.close еще Session ("iPagecount") = 0 конец, если Конец суб |
---- 4. Отображать содержимое записи
| Ниже приведено фрагмент кода: Sub ShowRecord () ... ... Localray = session ("storedarray") ishototal = (ipagecurrent -1) * ipagesize + 1 Irowloop = 1 Делать, почему iRowloop <= iPageSize и как -тотальный <= SESSION ("IROWCOUNT") Response.write ("<per>") для i = 1 к сеансу ("ifieldcount") Response.write ("<td>" & Localray (ishototal, i)) Далее Response.write ("< /tr>) ishoTotal = ishoTotal + 1 Irowloop = iRowloop + 1 петля Response.write ("< /table>") Если ipagecurrent <> 1 и ipagecurrent <сеанс ("Ipagecount") тогда %> <ster> <a href = "db_pag.asp? Page = < % = ipagecurrent -1 %> "> предыдущая страница < /a> <a href = "Db_pag.asp? Page = < % = ipagecurrent + 1 %>"> Последняя страница < /a> < /center> < % еще Если ipagecurrent <> 1, то тогда %> <ster> <a href = "db_pag.asp? Page = < % = ipagecurrent -1 %> "> предыдущая страница < /a> < /center> < % конец, если Если ipagecurrent <session ("ipagecount") %> <center> <a href = "db_pag.asp? Page = < % = Ipagecurrent + 1 %> "> более поздняя страница < /a> < /center> < % конец, если конец, если Конец суб |