FAQ

[Catalyst] Force the session to be saved.

Kieren Diment
Mar 30, 2011 at 8:50 am
You can mess with the metaclass to do what you want, but I don't know how to do it myself I'm afraid.
On 30/03/2011, at 7:40 PM, Duncan Garland wrote:

Thanks. That's very useful and a bit depressing.

-----Original Message-----
From: Andrew Rodland
Sent: 29 March 2011 19:33
To: The elegant MVC web framework
Subject: Re: [Catalyst] Force the session to be saved.
On Tuesday, March 29, 2011 12:46:32 PM Duncan Garland wrote:
Hi,

We've been having some peculiar behaviour from our system. I think it's
because the controller which produces the HTML page stores data in the
session for retrieval by the controller which produces the associated
javascript file.

The client begins processing the HTML page as soon as it starts to arrive.
When it reaches the script tag it requests the javascript page.
Occasionally the first controller hasn't written the session to the
database when the javascript controller tries to retrieve it.
(Catalyst::Plugin::Session::Store::DBIC).

I can move the script tag down the page a bit, but what I really need is a
way to force the session to be written before the HTML template is
rendered.

Something like:

$c->session->{javascript}->{$template} = { one = 1, two => 2};
$c->session->save;

Is there such a method?

Regards

Duncan
finalize_session (which writes the session to the DB) runs before
finalize_body (which writes the response to the client), so Catalyst already
does what you would like it to, and forcing a session write before running the
view is unlikely to help anything. I suspect either your database isn't
guaranteeing ordering, or the problem is somewhere other than where you're
looking.

Andrew

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/
reply

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions