Stuart -- This sounds very intriguing. Can you share some code or pseudocode? That would be very instructive.
Thanks! On Wed, Jun 2, 2010 at 1:23 PM, Stuart Watt <sw...@infobal.com> wrote: > Actually, I'll elaborate our more detailed solution. > > 1. We don't actually use POST requests for search, but our GET requests > have many fields and strange Dojo magic > 2. We serialize the query with its many fields, using a bit of compression > on the URI query string, and base 64 encoding, into a relatively opaque and > relatively short token > 3. This string is used by our search request handler, which unpacks the > string and allows a pageable search by merging in a few additional fields > (_page and _page_size) which are not serialized (that was underscore magic). > Because the serialized/compressed search query token is opaque and you can't > have two searches with the same query token, we use this as a cache key > extensively for performance. > > We find this works well. Also, since we have a model object for the search > (with serialize/deserialize) we can create views on it which allows us to > generate nice textual descriptions of the search -- very handy for user > feedback. And our users like to keep a history using these descriptions, so > they can go back and look/run previous searches. > > The only problem would appear to be when the URLs become excessive for a > GET request. When this happens, the POST can handle the form, generate the > serialized/compressed search query bundle, and then hand off to the GET > request with that instead. > > One caveat we hit was Microsoft's IIS rejected path elements in URLs which > were more than 240 characters (bytes?) even the URL was sound. It probably > thought they might be files. So we did pass stuff as query elements, as this > seems to be more viable on Microsoft servers anyway. > > --S > > Stuart Watt > ARM Product Developer > Information Balance > > On 6/2/2010 1:56 PM, w...@serensoft.com wrote: > > Short version: > > Using [% c.req.uri_with({ page => pager.next_page }) %] is fine for a > simple single-field search (where the form uses GET instead of POST)... but > how do we PAGE through (and/or cache) a multi-field form search that uses > POST? > > _______________________________________________ > 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/ > > -- will trillich "I think it would be worse to expect nothing than to be disappointed." -- Anne (with an 'e') Shirley
_______________________________________________ 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/