Open sebastian-meyer opened 2 years ago
I'd like to reintroduce this feature request for the development fund 2023. Since SLUB Dresden worked on it in the meantime (see #878) cost has been reduced to moderate although complexity stays high.
Votes: 4
Description
Currently Kitodo.Presentation works page-based. So all the METS and metadata parsing happens just to display a single or double page. Each time a user navigates to another page or structure (i. e. TOC entry) of the document, a full reload of the webpage occurs and everything get's parsed again. This is not only bad for server load on high-traffic sites, but also very counter-intuitive for non-page-based material like video or audio. For example, currently it is not possible to synchronize navigation/table of contents of an audio or video file without interrupting playback. It's also not possible to continuously read the fulltext of a document without having to turn the page.
The feature request introduces a completely client-side implementation of most of the interactive frontend plugins with asynchronous/lazy loading of data. So all the XML parsing would still happen on the server, but the information would then be provided to the frontend via RESTful API instead of parameters for server-side plugins.
Related Issues
None.
Expected Benefits of this Development
There are several benefits of this:
Estimated Costs and Complexity
The cost would be high, i. e. in excess of 10 working days. Complexity is high as well, since this would include re-implementing most of the frontend plugins in Javascript. (The old plugins could be kept for backwards compatibility and to still support older browsers, which may not be able to handle the client-side applications.)