Below I describe the design goals of Kamishibai.
Kamishibai is a compositior
Kamishibai is a simple compositor, similar to the Quartz Compositor in Mac OS X. What this means can be illustrated by what Kamishibai does, and what it does not.
What Kamishibai does not.
- Kamishibai does not generate HTML from data through the use of templates.
- Kamishibai does not contain any business logic in the form of “Models”.
- Kamishibai will never target native application development through phoneGap, etc. That’s not what Kamishibai is for.
What Kamishibai does.
- Kamishibai requests HTML fragments from the server and stores them in a local cache.
- Kamishibai replaces portions of the current DOM with HTML fragments from the server and displays them.
- Kamishibai intelligently places HTML fragments from the server into appropriate locations in the DOM based on attributes on the fragments.
- Kamishibai combines multiple fragments to generate a single DOM.
- Kamishibai local cache stores HTML fragments and also expires them.
- Kamishibai intelligently examines current network stability and uses the cached fragment or requests a new one from the server accordingly.
- Kamishibai interprets the URL and makes suitable Ajax requests to generate the page.
- Kamishibai intelligently discovers and fragments that are currently missing and requests them from the server.
- We think that explicit syncing sucks. Kamishibai will make syncing almost invisible to the end user.
- Kamishibai works offline.
- Kamishibai does not enforce a specific UI design and does not come with widgets. Designers are expected to be capable of coding their own widgets with HTML and CSS. This makes design extremely flexible so you can easily brand you website.
- Rendering HTML on mobile devices will always be slower than on powerful server hardware. Furthermore, pages rendered on the server will be cached for later use, making it even faster.
- If the server is slow, you can simply add more hardware. You can’t do that with client side libraries. You are always limited by whatever cheap and slow hardware the customer choses.