[prev in list] [next in list] [prev in thread] [next in thread] 

List:       taglibs-user
Subject:    More periodic refresh with JSTL c:import
From:       "Brian Buckley" <briankbuckley () attbi ! com>
Date:       2002-12-23 17:58:23
[Download RAW message or body]

This is a followup to a recent post to this group.

The snippet below imports a page and stores it into variable x if variable x
is more than 5 five minutes old.  This makes the page load fast for the
great majority of hits.

However, if traffic to the site is slow, let's say a steady one hit every 6
minutes, then each surfer experiences a very slow response time as the site
goes through the slow c:import routine to load x before showing the page.

Meanwhile, my webserver is sitting idle for the remaining time between hits.
Is there a tag or other technique one can use to instruct the webserver to
keeps variable x up-to-date (ie, not more than 5 minutes old) in the
background without waiting for a hit before noticing the variable is stale?

Brian

-----------------------------------------

<c:set var="cachePeriod" value="${5 * 60 * 1000}" />
<jsp:useBean id="n" class="java.util.Date" />
<c:if test="${(n.time - cacheTime) > cachePeriod}">
<c:remove var="x" scope="application" />
</c:if>
<c:if test="${empty applicationScope.x}">
<c:set var="x" scope="application" >
<c:import url="channel.jsp">
<c:param name="rssUrl" value="http://www.slowurl.rss" />
</c:import>
</c:set>
<jsp:useBean id="now" class="java.util.Date" />
<c:set var="cacheTime" value="${now.time}" scope="application" />
</c:if>
<c:out value="${applicationScope.x}" escapeXml="false" />




--
To unsubscribe, e-mail:   <mailto:taglibs-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:taglibs-user-help@jakarta.apache.org>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic