A proposed new API for Web Apps – Detachment
When I’m on my linux machine, I have to use the web app version of OneNote. It has flaws which make it not as good as the desktop version, but its getting there over time with steady development. One day it could be just as responsive and feature filled.
Well, except for one glaring omission which I think impacts all complex web apps and might be preventing uptake: Detachable Windows.
In the desktop app, I can press Ctrl+M and immediately get a new window. In most desktop apps with tabs I can drag a tab to a new window. In web apps, you can’t do this. In web apps, if you want a new window, you need to reload whole webpage.
It would be nice if there was a web-native method of telling the browser to open a new window but instead of reloading a whole webpage, share the context of the original and move or copy part of the original document into it.
This way would be much lighter on resources. Right now most browsers use a multi-process model. Some of them can share the same process per domain, or use similar optimisations, but if a web app wants to spawn a new view (tab, pop-up window), a lot of resources and effort are put into reloading everything when that might not be necessary.
If the context is shared it would also make it easier for web apps to intercommunicate without the need for complex message passing – The fragments of the document in each window would technically still be the same document.
This would be totally useless for mobile-only applications that will only appear on one screen at a time. But web apps aren’t just for mobile. They can be for larger devices which can fit windows side by side, like tablets and desktops.
I am not privy to how exactly the many desktop apps go about solving this problem of creating new windows so efficiently, perhaps there is some inherent limitation I’m not aware of that they have optimised their way past. Maybe the problem I’m having is just a sign that the OneNote web app is poorly optimised.
But I think this is a neat idea, and may be worth investigating.
- If you can think of any other web apps that could benefit from native “Detachment” support, or
- If this feature exists already in the native web and it has passed me by,
Leave a comment!