On Sat, Sep 15, 2012 at 7:06 PM, will trillich <[email protected]>wrote:
> Hi Francisco -- > > I'm not talking about paginating a resultset, I'm talking about returning > to a previously-established resultset on some future HTTP request. Here's > the scenario: > You are asking just how to display multiple pages of search results? > > 12:01 Bob submits search form for "Chicago between 1-Apr-2012 and > 30-Apr-2012" > Use a GET, not a POST. I'm Ignoring timezones, but you should not. http://example.com/event_list?city=Chicago&after=2012-04-01&before=2012-04-30&rows=100&page=1<http://example.com/event_list?city=Chicago&between=2012-04-01:2012-04-30&rows=100&page=1> > > 12:02 Bob sees first page of results, records 1-100 > > 12:03 Bob clicks to see second page of results, records 101-200 > <= how do we re-establish the recordset here, from the original search > form at 12:01? > http://example.com/event_list?city=Chicago&after=2012-04-01&before=2012-04-30&rows=100&page=<http://example.com/event_list?city=Chicago&between=2012-04-01:2012-04-30&rows=100&page=1> 2 > > 12:04 Bob clicks thru to see detail on record 135 > > 12:05 Bob clicks breadcrumbs to "return to search" > <= how do we re-establish the recordset here, from the original search > form at 12:01? > http://example.com/event_list?city=Chicago&after=2012-04-01&before=2012-04-30&rows=100&page=1<http://example.com/event_list?city=Chicago&between=2012-04-01:2012-04-30&rows=100&page=1> All independent requests -- someone may bookmark page 2 and go back there directly. Then (later) think about caching. That depends on usage, your database load, your SLA, your traffic, load, etc. You could fetch the entire result list on the first request and cache, for example, or you could instead cache the entire page (with a separate page cache layer). Use a cache, not the session, for caching. There's nothing here related to the session unless you wan to display something like "recent searches" to show on all pages -- and even that might be better in the cache keyed by user's ID if users are required to log in. > > > > On Sat, Sep 15, 2012 at 2:55 PM, Francisco Obispo <[email protected]> wrote: > >> Some databases provide means to return a specific set of records, and >> even an offset, >> >> In DBIx::Class, when you search, you can actually specify the "page" as >> an option [1], >> >> if you're not querying against a database, you might want to use >> something like Memcached or the like to store your resultset and paginate >> accordingly. >> >> >> >> >> [1] >> http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/ResultSet.pm#ATTRIBUTES >> >> >> On Sep 15, 2012, at 11:41 AM, will trillich <[email protected]> >> wrote: >> >> > User enters some search parameters (location, date-range, etc). Gets >> 500 results which we paginate. Once the user pages to the item of interest, >> he/she can then click thru to edit or see more detail. >> > >> > It'd be nice to have 'breadcrumbs' that take the user back to that page >> of that search. >> > >> > What's the recommended way of doing that? >> > >> > A) stash the whole recordset into the session (can you even >> serialize/deserialize a recordset object?) >> > >> > B) stash the search params and page-no and page-size and recreate the >> recordset each time >> > >> > C) ...something else? >> > >> > >> > >> > -- >> > Will Trillich :: 812.454.6431 >> > >> > “Waiting for perfect is never as smart as making progress.” -- Seth >> Godin >> > _______________________________________________ >> > List: [email protected] >> > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >> > Searchable archive: >> http://www.mail-archive.com/[email protected]/ >> > Dev site: http://dev.catalyst.perl.org/ >> >> Francisco Obispo >> email: [email protected] >> Phone: +1 650 423 1374 || INOC-DBA *3557* NOC >> PGP KeyID = B38DB1BE >> >> >> _______________________________________________ >> List: [email protected] >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >> Searchable archive: >> http://www.mail-archive.com/[email protected]/ >> Dev site: http://dev.catalyst.perl.org/ >> > > > > -- > Will Trillich :: 812.454.6431 > > “Waiting for perfect is never as smart as making progress.” -- Seth Godin > > _______________________________________________ > List: [email protected] > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: > http://www.mail-archive.com/[email protected]/ > Dev site: http://dev.catalyst.perl.org/ > > -- Bill Moseley [email protected]
_______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
