Author_Institution :
Sch. of Electr. Eng. & Comput. Sci., Seoul Nat. Univ., Seoul, South Korea
Abstract :
Web applications (apps) are programmed using HTML, CSS, and JavaScript. Web apps allow a faster app development based on existing web technology and a better portability since they are runnable on any device where a web browser is installed. Unfortunately, web apps are involved with a performance issue due to JavaScript, because its dynamic typing, function object, and prototype are difficult to execute efficiently, so even just-in-time compilers do not help much. In this paper, we propose a new approach to accelerate a web app, especially its loading time. Generally, running an app is composed of app loading to initialize the app, followed by event-driven computation. If the same job needs to be done to load an app, especially the execution of the same JavaScript code, it will be better to save the JavaScript execution state in advance and to start the app from the saved state. In fact, app loading is often involved with the initialization of the web framework such as j Query [1], Enyo [2], or Ext JS [3] where many JavaScript objects are created. Also, app-specific objects are created during app loading. If we save the initialized state of these objects in the form of a snapshot and start app loading by restoring the objects from the snapshot, we would accelerate app loading. We actually implemented the idea for the above three web frameworks, which lead to a 77% reduction of their initialization time. This can reduce the whole app loading time for an Enyo app by at least 20%, which could be noticed tangibly.
Keywords :
Internet; Java; hypermedia markup languages; CSS; HTML; JavaScript; JavaScript code; JavaScript execution state; Web applications; Web apps; Web browser; Web technology; just-in-time compilers; snapshot based loading time acceleration; Acceleration; Browsers; Cascading style sheets; Engines; HTML; Loading; Runtime;