I mean exactly that,
I'm comfortable with my html code, css and js
I can inline what I need, I'm not proposing this as a general approach,
but I like doing just that: take part of rendered content and do
something with it.

if something is a compoenent framework, a component should be independant,
even after the html code is rendered.

Davor Hrg


On Wed, Mar 19, 2008 at 10:45 AM, Martin Kersten
<[EMAIL PROTECTED]> wrote:
> > ...this king of component is useful for capturing output so it can be sent 
> > via email for example.
>
>  This does not sound like a good idea. Do you mean requesting a page and cut 
> it out or grabbing part of the DOM during same request. Just wondering... .
>
>  -----Ursprüngliche Nachricht-----
>  Von: Davor Hrg [mailto:[EMAIL PROTECTED]
>  Gesendet: Mittwoch, 19. März 2008 10:42
>  An: Tapestry users
>  Betreff: Re: AW: @Cached and caching in general
>
>
>
>  I agree that this is not something to take on lightly, and data should be 
> cached, and rendering left as is.
>  but besides caching this king of component is useful for capturing output so 
> it can be sent via email for example.
>
>  I like to keep most things stateless (only dependant on parameters), so from 
> time to time I can use some of these nasty tricks.
>
>  Davor Hrg
>
>  On Wed, Mar 19, 2008 at 1:04 AM, Fernando Padilla <[EMAIL PROTECTED]> wrote:
>  > :)
>  >
>  >  True.  I definitely won't say that this will solve all cases 100%.
>  > But  for basic rendering.. this allows you to essentially set
>  > "expires" for  fragments of the page.  And yes it caches all
>  > operations that go through  PageRenderSupport.  And if I could take
>  > over the markupWriter properly,  I would have cached and replayed
>  > those already.. but i couldn't easily  do that..  But on second
>  > thought, you're right, maybe I should have  cached a DOM tree.. since
>  > it would have a much better guarantees for  replaying.
>  >
>  >  But on most cases, this component works pretty darn good, and we love it.
>  >
>  >  Of course trying to do evict cache on particular events is hard.. but
>  > if  you are alright with "updates within 30hr" sort of cases. this is
>  > a good  start.
>  >
>  >
>  >
>  >
>  >
>  >  Howard Lewis Ship wrote:
>  >  > I'm generally against these approached.
>  >  >
>  >  > Cache the data, make it fast to access.
>  >  >
>  >  > Let Tapestry do a full render every time.
>  >  >
>  >  > You'll end up with confusing, unforseen consequences.
>  >  >
>  >  > Rendering is increasingly a complex dance between components.
>  > That's  > the power and the penalty of Tapestry.  Components inside
>  > that cached  > zone are not just rendering a character stream, they
>  > are generating  > JavaScript, assigning unique ids (via
>  > PageRenderSupport) interacting  > with an enclosing Form components,
>  > and doing other user-specific  > things.
>  >  >
>  >  > I would always look elsewhere first for places that need
>  > optimization,  > and I'd start with database access and queries.
>  >  >
>  >  > On Tue, Mar 18, 2008 at 11:22 AM, Fernando Padilla <[EMAIL PROTECTED]> 
> wrote:
>  >  >> We have a component that we call "Buffer" :) it takes a timeout,
>  > >>  optional cachekey, and optional lastmodified (to tell you)  >>  >>
>  > We have it for Tap4 and Tap5, if anyone really wants it, I bet I can
>  > >>  liberate it.. you would just have to change the cache hooks to use
>  > >>  whatever cache you want to use...
>  >  >>
>  >  >>  The easiest way to add caching to the app. :)  >>  >>  >>  >>
>  > Martin Kersten wrote:
>  >  >>  > @Chached is only used during a single page rendering cycle. It
>  > would not  >>  > apply to your situation. (as far as I know)  >>  >
>  > >>  > Source:
>  >  >>  >
>  > http://sqllyw.wordpress.com/2008/03/15/new-features-in-tapestry-5011/
>  >  >>  >
>  >  >>  > Your scenario would be implementable using your own component.
>  >  >>  > The component would represent a fragment and read the file
>  > (even  >>  > use a inmemory cache strategy (soft/weakreferences)) and
>  > write  >>  > the ouput directly to stream (or actually the dom tree of
>  > your  >>  > document being returned).
>  >  >>  >
>  >  >>  > Using your own solution enables you to mimic the behavior you talk 
> about.
>  >  >>  > Another idea would to write / cache only datas needed to render
>  > the tables  >>  > (e.g. cache only content not markup). Never the less
>  > I am in doupt,  >>  > if such a solution is necessary (dynamically
>  > cache results of  >>  > database queries in memory or on disk).
>  >  >>  >
>  >  >>  > So after all you might want to port your application. As always
>  > use  >>  > the simpliest solution first. So database queries without any 
> caches.
>  >  >>  > Once you see any problems (performance is below required) just
>  > go for  >>  > optimization. Since you have a fallback solution at hand
>  > (cron-jobs +  >>  > disk fragments) you are at the safe side. But I am
>  > in doupt if you  >>  > really need the markup being cached. Caching
>  > the database results  >>  > and recreate markup sounds more
>  > reasonable. You might save you lots  >>  > of seeking time.
>  >  >>  >
>  >  >>  > But you always know: Only the code / application will tell you!
>  >  >>  >
>  >  >>  >
>  >  >>  > Cheers,
>  >  >>  >
>  >  >>  > Martin (Kersten)
>  >  >>  >
>  >  >>  > -----Ursprüngliche Nachricht-----  >>  > Von: Tobias Marx
>  > [mailto:[EMAIL PROTECTED]  >>  > Gesendet: Dienstag, 18. März 2008 17:45
>  > >>  > An: Tapestry users  >>  > Betreff: @Cached and caching in
>  > general  >>  >  >>  > I have not used T5 yet, but would @Cached use
>  > the file system for caching HTML fragments similiar to caching mechanisms 
> in some php frameworks?
>  >  >>  >
>  >  >>  > Or is this a pure memory-based cache?
>  >  >>  >
>  >  >>  > I am thinking about migrating an old PHP application to T5 - it has 
> really a lot of traffic and any users are logged in at the same time.
>  >  >>  >
>  >  >>  > It is quite a low-level application that is still quite fast due to 
> cron jobs in the background that generate HTML fragments that are included to 
> reduce the database-query bottleneck (e.g. grouping/ordering and sorting of 
> huge tables).
>  >  >>  >
>  >  >>  > Somehow I don't trust Hibernate for high-performance database 
> queries on huge tables .... as I think if tables are huge and many people 
> access it, it will always lead to problems...no matter how good the queries 
> are and how well you have splitted the data across several tables.
>  >  >>  >
>  >  >>  > So I think the best solution is always to generate HTML fragments 
> in the background that take a long time and simple "include" them....this is 
> even quicker then parsing templates when the data is cached. So you save the 
> time necessary for querying the database plus the time necessary for 
> processing the templates that are involved.
>  >  >>  >
>  >  >>  > Currently the setup on this application uses one-way database 
> replication and the cron jobs access the the huge data table on the 
> replicated database and generate those HTML fragments without disturbing the 
> web-applications performance. So the main application simply includes those 
> HTML fragments within milliseconds.
>  >  >>  >
>  >  >>  > But maybe the T5 caching mechanism would make all of those 
> low-level tricks redundant?
>  >  >>  >
>  >  >>  >
>  > ---------------------------------------------------------------------
>  >  >>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >  >>  > For additional commands, e-mail: [EMAIL PROTECTED]
>  > >>  >  >>  >  >>  >
>  > ---------------------------------------------------------------------
>  >  >>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >  >>  > For additional commands, e-mail: [EMAIL PROTECTED]
>  > >>  >  >>  >>
>  > ---------------------------------------------------------------------
>  >  >>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >  >>  For additional commands, e-mail: [EMAIL PROTECTED]
>  > >>  >>  >  >  >
>  >
>  >  ---------------------------------------------------------------------
>  >  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >  For additional commands, e-mail: [EMAIL PROTECTED]
>  >
>  >
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to