newbie question mod_perl2 ajax
am 16.08.2008 05:18:23 von Collin MonahanI'm trying to learn how to use mod_perl2 along with Ajax. Everything was humming along until it seemed like perhaps Apache had a couple instances of my handler in memory, and what I had declared as module variables were existent in two different states. It seemed like Apache was handing off to a different handler each time my Ajax callbacks were invoked on browser/user input, and the handler chosen was somewhat at random. Perhaps I could try to exemplify what I was seeing.
package Handlers::Main;
....
# now I think these aren't necessarily per connection.
my $ajax_div1a_contents = "default text for div1/a";
my $ajax_div1a_state = 0; # default state
my $ajax_div1b_contents = "default text for div1/b";
my $ajax_div1b_state = 0; # default state
....
sub handler {
my $r = shift;
my $ajax = Apache2::Ajax->new($r);
$r->print($ajax->build_html());
return Apache2::Const::OK
}
....
sub Show_Form_sub {
# here I could try to get the request or connection for using notes
my $self = shift;
my $r = $self->r;
my $con = $r->connection;
my $convar = $con->notes->get('convarA');
# but I don't think it will help during the ajax callbacks
....
$html .= '';
}
....
sub fAjax {
my $x = shift; # this is the field value, not self
# don't know how to get the request rec in here
# nor the connection
# and trying to use module variables like
# those declared above seems buggy
# but I would like to know more about the module
# state inside here (for only this connection)
# than just the value of x.
}
One workaround I imagined was maintaining all the needed state for each module-session in a database table keyed by sessionid, but I have the hunch there must be a usual way to do this, and that that's not the way it is.
tia
Collin Monahan