On Sat, Sep 15, 2012 at 7:06 PM, will trillich
<will.trill...@serensoft.com>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 <fobi...@isc.org> 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 <will.trill...@serensoft.com>
>> 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: 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/
>>
>> Francisco Obispo
>> email: fobi...@isc.org
>> Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
>> PGP KeyID = B38DB1BE
>>
>>
>> _______________________________________________
>> 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/
>>
>
>
>
> --
>  Will Trillich :: 812.454.6431
>
> “Waiting for perfect is never as smart as making progress.”  -- Seth Godin
>
> _______________________________________________
> 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/
>
>


-- 
Bill Moseley
mose...@hank.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 via email to