You're very welcome, Petter. I'm happy to be having this discussion! I've included some inline comments below as well.
I also think it can be used for more static data, which rarely change. Say for example the list of branches (we have around 30) which populates dropdown several places the staff interface. If this was fetched after page load, by an AJAX request to, say, GET koha/rest/v2/branches, we could set the Cache expiration headers, (to a day, or a month, I dunno) then the browser would cache this particular request, and thus not touch the database at all except when cache expires. For frequently used pages this could lead to a lot of less traffic to the database. Then there is the problem of when you actually DO change this "mostly" static data, like branches... Well, either you can wait until cache expires, you can force to reload (Cltr +R, or Cltr + F5 in most browser), or we must implement some logic on updates which modifies the cache expiration headers.
I don't have much experience with caching, but that sounds interesting. One worry I have about using AJAX in the OPAC is the second or so that it can take to load an element on a page sometimes. The page loads and then elements can "jump". For instance, I added a drop-down menu for "Collection" next to the masthead search box. It didn't load very smoothly. I wonder if it would if it were cached as it doesn't need to do that database query. Of course, loading search result facets would take longer, but we could add a "Loading..." or "Calculating facets..." message in that case, so that users would know what the system is doing.
Some more benefits of Koha using its own APIs: - They are kept up to date since they are used by Kohas core - More thought is being put into layout, organization and implementation of the API, as it not just for "someone else", some third-party integration, but for Koha itself.
Agreed. Since Koha would be both client and server, I think more care would be put into architecture. Since it would depend on its own API, it would have to be up-to-date. David Cook Systems Librarian Prosentient Systems 72/330 Wattle St, Ultimo, NSW 2007