[Tapestry-developer] [ tapestry-Feature Requests-685544 ] Efficient Page Refresh w/o restart (ala js
Brought to you by:
hship
From: SourceForge.net <no...@so...> - 2003-03-04 17:05:43
|
Feature Requests item #685544, was opened at 2003-02-12 16:47 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=354754&aid=685544&group_id=4754 Category: framework Group: None Status: Open Resolution: None Priority: 5 Submitted By: Joel Trunick (harpsoft) Assigned to: Nobody/Anonymous (nobody) Summary: Efficient Page Refresh w/o restart (ala jsp) Initial Comment: I would like to drop new pages into production without having to restart the webserver. This exists in development as an option, but is expensive (reloads pages every click). This would need to be efficient like JSP. That is, simply check the timestamps on the files to determine whether they are updated. If they are, then reload, w/o flushing any sessions. If the files are in a .zip (ie. .war file), then no updating/checking is necessary. This should be the default. No option necessary, development or production. If you don't need it, .war it. This is highly important and practical for a 24x7 website. Joel ---------------------------------------------------------------------- >Comment By: Howard Lewis Ship (hship) Date: 2003-03-04 12:15 Message: Logged In: YES user_id=26816 Timestamp checking IS possible in theory. I believe that you can get the URL for each resource (even from the classpath, even in a JAR or WAR) and from that, the date last modified. For packaged files, it is the date last modified of the archive. I'm concerned about the performance impact, and the degree to which code will be mangled to support this. Think about this: "check the timestamps". Which timestamps: We're talking about the page template, page specification, and the template and specification of every compoent, recursively. that means that when IREquestCycle gets a page, it has to perform a check on potentially dozens of files (yes, we would gate this, and only perform checks every so often). I would rather spend the effort creating some kind of JMX extension that would link to Tapestry and allow you to safely reset the Tapestry caches, or a smarter version of the reset service that you could invoke from your web browser after uploading new content. These solutions ensure that the running application continues to use the old content until the upload of new content is complete. ---------------------------------------------------------------------- Comment By: Luke Galea (lgalea) Date: 2003-03-04 11:24 Message: Logged In: YES user_id=444918 Could you extend the page service to check the timestamps and have it call the reset service if needed? I suppose having your own custom "AutoRefreshPageService" would be somewhat difficult though because so many things would still call the baseclass.. Is there any merit to this? Something I am missing? ---------------------------------------------------------------------- Comment By: Howard Lewis Ship (hship) Date: 2003-03-04 11:04 Message: Logged In: YES user_id=26816 This is a lot of work. It may be possible in the future, but there are more important priorities right now. I woudl suggest looking at the reset service; it;'s job is to discard all cached data. It is disabled by default because it seems like a likely candidate for a denial-of-service attack. Perhaps you could create a variation of reset that had some app-specific validations (i.e., that the client originated within your internet domain). Thus, after uploading new content, you could invoke the service to force Tapestry to accept the changes. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=354754&aid=685544&group_id=4754 |