...and, yes, it is cache-able because if I repeat the request (with the exact same parameters), the browser reports "304 Not Modified".
CGS On Wed, Jan 18, 2012 at 12:34 PM, CGS <[email protected]> wrote: > > Here is an example (I used list function, but it works with pure map > function nevertheless): > > 1. jQuery plugin: > > $.test = $.test || {}; > $.extend($.test, { > fetch_data_startendkey: function(options) { > options = options || {}; > $.ajax({ > type : "GET", > url : " > http://my_domain.domain_type:5984/mydatabase/_design/design_name/_list/list_function_name/view_function_name?startkey= > "+options.startkey+"&endkey="+options.endkey+"&limit="+options.limit+"&skip="+options.skip+"&descending="+options.descending, > dataType : "json", > async : false, > global : false, > data : {}, > error : options.error, > success : options.success > }); > } > }); > > 2. jQuery callback: > > $.test.fetch_data_startendkey({ > startkey: "my_string", > endkey: "my_other_string", > limit: mylimit, > skip: myoffset, > descending: my_descending_boolean, > success : function(data, textStatus, headers) { > /* do something with the predefined errors and the > returned data if no predefined error returned */ > }, > error : function(code, error, reason) { > /* do something with the error */ > } > }); > > where "my_*string" is the list transformed in string (e.g., > "[\""+key1+"\",\""+key2+...+"\"]", whatever method used to get that > string), mylimit and myoffset are integers and so on. No manual encoding > needed (handled by the browser). > > 3. The request in log shows no difference from the direct request from the > address bar. > > This works for me without any problem for my CouchDB 1.1.0. I know the > method can be improved to be more robust, but I have no time now for that. > Nevertheless, GET method works and it doesn't require manual encoding. > > CGS > > PS: I hope I don't have typos and neither I omitted something as I am > quite tired now. If I did, please, let me know. > > > > > > On Wed, Jan 18, 2012 at 12:01 PM, Marcello Nuccio < > [email protected]> wrote: > >> I'm not sure to follow... >> >> 1. are you sure the GET does work? When I try, the key[] parameters are >> ignored. >> >> 2. IMHO the advantage of GET is cache-ability. Building a JSON is quite >> easy: >> JSON.stringify({ keys: [ "key1", "key2" ] }); >> >> Can you give some more information? >> >> Thanks, >> Marcello >> >> 2012/1/18 CGS <[email protected]>: >> > The problem with POST method is that you need to do the encoding >> manually, >> > while with GET method instead of &key=["key1",...], you get >> > &key[]=["key1"]&key[]=... To solve the problem, for example, I transform >> > the full query in a string and I attach it manually to the web address. >> In >> > that way, the browser takes care of encoding for me and I avoid the >> mess. I >> > use this method under jQuery AJAX (don't forget to add \" for the double >> > quota required in the query). >> > >> > Hope it will help. >> > >> > CGS >> > >> > >> > >> > >> > >> > On Wed, Jan 18, 2012 at 11:29 AM, Marcello Nuccio < >> [email protected] >> >> wrote: >> > >> >> Yes, but you need to do a POST, not a GET: >> >> >> >> http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options >> >> >> >> put the following JSON in the body: >> >> {"keys": ["key1", "key2", ...]} >> >> >> >> Marcello >> >> >> >> 2012/1/18 Alexandre Masselot <[email protected]>: >> >> > Hello, >> >> > >> >> > I'm using view with a simple map that extract a couple of values (we >> >> store >> >> > millions of web page info in couchdb and I need to access rapidly a >> md5 >> >> > field to know whether we should treat a crawled page or if we already >> >> know >> >> > it). >> >> > >> >> > It's fine to get the view output for one page >> >> > http://127.0.0.1:5984/honbot/_design/projections/_view/md5?key= >> >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" >> >> > >> >> > >> >> > For saving, we use bulk_docs to save doc per 1000 slices and that >> goes >> >> much >> >> > faster. >> >> > >> >> > My question is: is it possible to make a view request list above, but >> >> with >> >> > a list of key? >> >> > Let's say >> >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" >> >> > and "http%253A%252F%252Fwww.pipo.com" >> >> > >> >> > >> >> > thanks for the help >> >> > alex >> >> > -- >> >> > Alexandre Masselot >> >> > >> >> > http://alexandre-masselot.blogspot.com/ >> >> >> > >
