То, что я писал ранее: Эта статья по-прежнему связана с ASP. Я считаю, что все, кто играет в ASP, чувствуют то же самое. Когда имеется более 50 000 фрагментов данных - как и в музыкальной сети, необходимо вызвать и отобразить последние 10 фрагментов. страница. Плохо то, что когда n нескольких пользователей открывают страницу для доступа, каждому пользователю приходится каждый раз читать базу данных, что, несомненно, снижает эффективность. Очевидно, если данные можно сохранить в памяти, а затем прочитать. , Это, несомненно, ускоряет процесс. Так называемый кеш на самом деле предназначен для открытия места в памяти для сохранения данных. Используя кеш, вам не придется часто обращаться к данным, которые вы сохраняете на жестком диске, потому что мы надеемся. что каждый пользователь может видеть эти данные. Эффект тот же. Рассмотрите возможность использования объекта приложения, поскольку это общий объект для всех посетителей. Здесь нам нужно использовать asp. встроенный объект ПРИЛОЖЕНИЕ. Что касается приложения, есть 2 Один метод [блокировка и разблокировка], две коллекции [контент и статические объекты], два события [application_onstart и application_end], переменная приложения не исчезнет, поскольку пользователь уйдет. он будет ждать, пока веб-сайт не закроется и программа не будет удалена. Поэтому вам следует быть особенно осторожным при его использовании. В противном случае мне не нужно здесь больше говорить. проверить соответствующую информацию.Это примерно так.Мы записываем данные в пользовательское приложение.Общая идея состоит в том, чтобы прочитать и обновить в указанное время.Демонстрационный
пример.Сначала создайте простую базу данных, напишите функцию для ее чтения. и запишите его в переменную temp:
Ниже приведен ссылочный фрагмент:
Функция ДисплейРекордс()
'Эта функция изначально присваивала записанное значение Dim sql, conn, rs переменной temp
'Условный оператор sql = "SELECT id, [szd_f], [szd_t] FROM admin"
'Открыть соединение с базой данных. Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db.mdb")
Установите rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 1, 3
'Когда данные, соответствующие оператору sq l, не были отображены, If Not rs.EOF then
'Назначаем Dim temp переменной temp
temp = "<table width=""90%"" align=""center"""
temp = temp & " border=""1"" bordercolor=""silver"""
temp = temp & " cellpacing=""2"" cellpadding=""0"">"
temp = temp & "<tr bgcolor=""#CCDDEE""><td width=""5%"""
temp = temp & ">ID</td><td>Операция</td>"
temp = temp & "<td>Число</td></tr>"
Пока не rs.EOF
temp = temp & "<tr><td bgcolor=""#CCDDEE"">"
temp = temp & rs("ID") & "</td><td>" & rs("szd_f")
temp = temp & "</td><td>" & rs("szd_t")
temp = temp & "</td></tr>"
rs.MoveNext
Венд
темп = температура & "</table>"
'После завершения назначения temp верните его в функцию DisplayRecords = temp
Еще
DisplayRecords = «Данные недоступны».
Конец, если
'Освободить память rs.Close
конн.Закрыть
Setrs=Ничего
Установить соединение = Ничего
Конечная функция
ОК, приведенная выше функция была преобразована, и при вызове она становится DisplayRecords.
Вот где приложение вступает в игру:
'Эта функция предназначена для записи в кэш. Функция DisplayCachedRecords(Secs)
Dim retVal, datVal, temp1
'Секунды — время обновления данных каждый раз, retVal — это данные, datVal — оставшееся время retVal = Application("cache_demo") 'Получить значение приложения datVal = Application("cache_demo_date") 'Получить значение приложения ' Оценить значение datVal , то есть вычислить, прошло ли время. If datVal = "" Тогда.
'Если оно пусто, значение datVal представляет собой текущее время в секундах плюс время, определенное в секундах. datVal = DateAdd("s",Secs,Now)
Конец, если
'temp1 — это вторая разница между текущим временем и datVal temp1 = DateDiff("s", Now, datVal)
'Если retVal уже является возвращаемым значением вышеуказанной функции и время больше 0
Если temp1 > 0 И retVal <> "" Тогда
'Эта функция возвращает количество записей DisplayCachedRecords = retVal
Response.Write "<b><font color=""green"">Использовать кеш для чтения данных"
Response.Write " ... (" & temp1 & " оставшихся секунд)</font></b>"
Ответ. Напишите "<br><br>"
Еще
Если 'retVal пуст, присвойте значение DisplayRecords переменной temp2.
Тусклая температура 2
temp2 = DisplayRecords()
'Сохранить в приложении.------------------>Фокусировать приложение.Блокировать
Приложение("cache_demo") = temp2
Приложение("cache_demo_date") = DateAdd("s",Secs,Now)
Приложение.Разблокировать
DisplayCachedRecords = temp2
' Здесь случайно записано прошедшее время записанного кэша, а разница относительно общего количества секунд равна:
Response.Write "<b><font color=""red"">Обновить отображение кэша..."
Ответ. Напишите "</font></b><br><br>"
Конец, если
Конечная функция
%>
приведен
полный
метод вызова кода без комментариев: <%=DisplayCachedRecords(20)%>
Написано в конце: Если вы чувствуете, что памяти вашего сервера недостаточно, не используйте большой объем. кэш.