> > > Now I realize that in order to interact with the table, which is managed > by pyjamas, for example to select a certain row, I need to define a complex > JSONRPCs interface (select row, un-select, paginate to next page, previous > page, last page, page number, ...), passing back and forth parameters and > results between web2py and pyjamas. This looks quite complex. > > One thing that can reduce playing ping-pong with the server (and therefore also reduce complexity + enhance performance): think about when you really need to contact the server, and accumulate other changes in the client until you actually contact it.
In an application I'm currently prototyping, I allow a user to do lots of manipulations on a table (selecting rows, filtering visible data, sorting columns, ...) purely in the client. When the user selects a row, I dynamically change its css style so it looks differently on screen. No need to contact the server for that. Inside the client (pyjamas) I maintain a data structure in response to the user interactions that encodes updates to the current state of the application (think: a list of currently selected rows). Only when absolutely needed, the new state of the application is sent back to the server (i.e. to web2py using JSONRPC) and processed, or new data is requested from the server. As explained by Anthony ("most of the effort will be on the client side"), I think using Ajax/JQuery directly won't make things fundamentally easier (on the contrary: unless you find a pre-made component that already does what you want you will now have to write your client side stuff in javascript instead of python, which - depending on your background - may sound scary). --