Hi, In my view2.tt I call AJAX which loads the rest of the data from other routes, so pretty much as you described. Parameter passing is now done via session cookies and handling of the results is done via datatables. Once I'm done with my app I can write some documentation and put it somewhere --joerg On 10/16/2015 05:05 PM, John Stoffel wrote:
Thanks for posting your example, this should be documented somewhere... but I also wonder if you really just need to put a <div> into your template and have your javascript just load more data from a seperate route into that div which could then scroll, re-draw, or whatever.
Basically, if you have a long running process, how would you handle pagination of the results using your method? And what does your view2.tt contain as well?
Joerg> Thanks to everyone involved I finally managed to get it done;
Joerg> For people with the same problem, here is an example for what I did,
Joerg> my $parameterhash; Joerg> get '/routeA/:*?' => sub { Joerg> my $id = params->{'id'}; Joerg> my $blub = params->{'blub'}; Joerg> delayed { Joerg> my $tt = Template->new( Joerg> {INCLUDE_PATH => "$path", Joerg> WRAPPER => 'layout.tt', Joerg> RELATIVE => 1, Joerg> }) || die "Template error: $Template::ERROR\n"; Joerg> $tt->process('view.tt', { Joerg> 'id' => $id, Joerg> 'bla' => $blub Joerg> }; Joerg> content $tt; Joerg> done; Joerg> ## Manual states from here on we can do whatever we want without intereferring with the stream Joerg> $parameterhash = Joerg> { Joerg> 'id' => $id, Joerg> 'bla' => $blub Joerg> }; Joerg> }; Joerg> };
Joerg> get '/routeB/:*?' => sub { Joerg> ## parameters are now fetched from the parameterhash reference Joerg> my $id = $parameterhash->{'id'}; Joerg> my $blub = $parameterhash->{'bla'};
Joerg> # Do something from here on Joerg> my $addition = "something"; Joerg> delayed { Joerg> my $tt = Template->new( Joerg> {INCLUDE_PATH => "$path", Joerg> WRAPPER => 'layout.tt', Joerg> RELATIVE => 1, Joerg> }) || die "Template error: $Template::ERROR\n"; Joerg> $tt->process('view2.tt', { Joerg> 'id' => $id, Joerg> 'bla' => $blub Joerg> 'addition' => $addition Joerg> }; Joerg> content $tt; Joerg> done; Joerg> };
Joerg> In the template view.tt Joerg> I simply added
Joerg> <script type="text/javascript"> Joerg> $(document).ready( function () { Joerg> // Javascript URL redirection after 5 seconds Joerg> setTimeout(function() { Joerg> var str = window.location.href; Joerg> var res = str.replace("routeA", "routeB"); Joerg> window.location.replace(res); Joerg> }, 5000); Joerg> }); Joerg> </script>
Joerg> which forwards to routeB, Joerg> seems to work fine.
Joerg> The way I use it now I do not need delayed actually, Joerg> but it doesn't hurt, so I keep for the moment.
Joerg> Thanks again to everybody!
Joerg> --joerg
Joerg> On 10/16/2015 01:51 PM, Clive Eisen wrote:
Joerg> Other people have told you how to do this
Joerg> In your template have callbacks to OTHER routes that return the rest of the data as and when it’s available
Joerg> If you insist use the same route and figure out from a param whether its the initial call or a callback
Joerg> As far as I can tell once you have served a template that request is closed
Joerg> -- Joerg> Clive Eisen Joerg> GPG: 75056DD0
Joerg> On 16 Oct 2015, at 11:31, Joerg Fallmann <fall@tbi.univie.ac.at> wrote:
Joerg> To circumvent this I thought about forwarding to another route Joerg> after processing a template, Joerg> this should actually work around the update existing output problem, Joerg> but it seems this is not possible either Joerg> so I really got no idea how to proceed at the moment.
Joerg> --joerg
Joerg> On 10/16/2015 09:05 AM, Yitzchak Scott-Thoennes wrote:
Joerg> For this to work, you'd either need a template engine that is tightly integrated into Dancer or a streaming template engine (that would call a callback to call content as it got chunks) with the ability to loop over iterators or trigger callbacks to get more data to format. Though I guess you could use a normal template loop over a tied array too.
Joerg> But I don't know of such a template engine.
Joerg> _______________________________________________ Joerg> dancer-users mailing list
Joerg> dancer-users@dancer.pm Joerg> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Joerg> _______________________________________________ Joerg> dancer-users mailing list Joerg> dancer-users@dancer.pm Joerg> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Joerg> _______________________________________________ Joerg> dancer-users mailing list Joerg> dancer-users@dancer.pm Joerg> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
Joerg> _______________________________________________ Joerg> dancer-users mailing list Joerg> dancer-users@dancer.pm Joerg> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users _______________________________________________ dancer-users mailing list dancer-users@dancer.pm http://lists.preshweb.co.uk/mailman/listinfo/dancer-users