1. Обзор
В веб-приложениях создание некоторых отчетов может занять много времени для расчета базы данных; некоторые веб-сайты предоставляют информацию о погоде, что требует доступа к удаленному серверу для выполнения вызова SOAP для получения информации о температуре. Все это примеры сложной информации. Добавление слишком большого количества сложной информации на веб-страницу может привести к перегрузке веб-сервера и сервера базы данных. jsp (первый выбор для приложений уровня предприятия SUN) (первый выбор для приложений уровня предприятия SUN) Буферизация блоков кода дает разработчикам свободу добавлять различную сложную информацию по своему желанию.
jsp (первый выбор для приложений уровня предприятия SUN) (первый выбор для приложений уровня предприятия SUN) может инкапсулировать и запускать сложный код Java в библиотеке тегов, что делает jsp (первый выбор для приложений уровня предприятия SUN) (первый выбор для приложений уровня предприятия SUN) Файлы легче поддерживать, что делает более удобным для непрофессиональных разработчиков использование jsp (первый выбор для приложений уровня предприятия SUN) (первый выбор для приложений SUN уровня предприятия) уровня приложений) файлы подкачки. Уже существует множество библиотек тегов, которые являются либо коммерческими продуктами, либо продуктами с открытым исходным кодом. Но в большинстве этих продуктов библиотеки тегов используются только для реализации функций, которые можно реализовать с помощью простого Java-скриптлета. Немногие продукты используют пользовательские теги каким-либо творческим способом для предоставления jsp (приложения уровня предприятия SUN). Первый выбор) (первый выбор для). приложений корпоративного уровня SUN) раньше было практически невозможно создать собственную библиотеку тегов.
Библиотека тегов OSCache разработана OpenSymphony. Это революционное приложение jsp (первый выбор приложения корпоративного уровня SUN) (первый выбор приложения SUN корпоративного уровня), которое обеспечивает возможность использования существующего jsp (первого приложения SUN корпоративного уровня). выбор) (первый выбор для приложений уровня предприятия SUN) реализует функцию быстрой буферизации памяти внутри страницы. Хотя есть несколько поставщиков, предлагающих продукты кэширования в различных формах, все они являются продуктами конкретных поставщиков. OSCache может работать на любом jsp (первый выбор приложения уровня предприятия SUN) (первый выбор приложения уровня предприятия SUN) 1.1-совместимого сервера. Он может не только кэшировать существующий jsp (первый выбор приложения уровня предприятия SUN) (приложение уровня предприятия SUN). ) для всех пользователей. Первый выбор для приложений) блоков кода и может буферизоваться индивидуально для каждого пользователя. OSCache также включает в себя некоторые расширенные функции для улучшения масштабируемости, такие как буферизация на диск, программируемая очистка буфера, контроль исключений и т. д. Кроме того, как и другие продукты OpenSymphony, код OSCache распространяется свободно по лицензии с открытым исходным кодом.
В этой статье в качестве примера используется воображаемый процесс разработки веб-сайта аукциона, чтобы представить рабочий процесс OSCache. Этот воображаемый веб-сайт будет включать в себя: страницу управления, сообщающую о последних аукционных действиях; полнофункциональную домашнюю страницу с различной рекламной информацией и специальную панель навигации, содержащую информацию обо всех неурегулированных аукционных действиях пользователя;
2. Страница управления
Веб-сайт аукциона содержит отчет управления, и серверу базы данных требуется несколько секунд для создания такого отчета. Важно, чтобы создание отчета занимало много времени, поскольку у нас может быть несколько администраторов, контролирующих работу системы, и мы хотим избежать повторного создания отчета при каждом посещении администратора. Для этого мы инкапсулируем всю страницу в тег буфера уровня приложения, который обновляется каждый час. Некоторые продукты других производителей имеют схожий функционал, просто OSCache делает это лучше них.
Для простоты мы не будем слишком много внимания уделять вопросам форматирования. При написании страницы управления мы сначала добавляем на страницу объявление библиотеки тегов:
<%@ taglib uri="cachetags" prefix="cache" %>
Далее нам нужно окружить всю страницу тегами кэша. Время кэширования по умолчанию для тегов кэша составляет 1 час.
<cache:cache> .... Сложные отчеты управления... </cache:cache>
Теперь страница управления кэширована. Если администратор снова обратится к той же странице в течение часа после ее создания, он увидит ранее закешированную страницу, и серверу базы данных не потребуется повторно генерировать этот отчет.
3. Домашняя страница
На главной странице веб-сайта аукциона отображается активность сайта и рекламируются аукционы, которые вот-вот закончатся. Мы хотим отображать количество текущих аукционов, количество вошедших в систему пользователей, список аукционов, которые должны завершиться в ближайшем будущем, и текущее время. Эти сообщения имеют разные требования к точности времени. Аукционы на сайте обычно длятся несколько дней, поэтому мы можем установить время буферизации количества действительных аукционов до 6 часов. Количество пользователей, очевидно, будет меняться чаще, но здесь мы будем буферизовать это значение по 15 минут за раз. Наконец, мы хотим, чтобы текущее время, отображаемое на странице, всегда было точным временем доступа к странице.
После объявления библиотеки тегов на домашней странице мы сначала выводим текущую дату напрямую, без буферизации:
теперь это: <%=new java.util.Date()%>
Далее мы хотим отобразить список тех, которые будут участвовать в аукционах. которые заканчиваются в краткосрочной перспективе:
<cache:cache> <ul> <% // Создаем итератор, содержащий самые последние аукционы Iterator Auctions = .... while (auctions.hasMore()) { Аукционный аукцион = (Аукцион) аукционы .next(); %><li><%=аукцион%></li%< } %> </ul> </cache:cache>