HTML5 provide a number of awesome APIs, and we just examined some of them. Among browser storage APIs, there are localStorage and sessionStorage that extend the cookies relict. Both are capable of storing megabytes of data and can be easily synchronized across different browser windows/tabs. IndexedDB allows us to store even greater quantity of data and provides an interface for high-performance searches using indices. We can also use FileSystem API to create and operate a local file system bound to the web application.
While JavaScript is a single-threaded environment, we can still run scripts in multiple threads. We can register dedicated or shared Web Workers and hand over any processor-intensive operations, leaving the main thread and the UI unaffected. We also can leverage a special kind of JavaScript workers—Service Workers--- as a proxy between the web application and the network. This enables control to network I/O when the browsers switches mode online/offline.
Nowadays we...