# Survey on Quality of Experience Evaluation for Cloud-Based Interactive Applications
## 3 Categories of CIAs
### Interactive Web Applications  
Interactive web applications are also a category of CIAs. They differ from typical web browsing, where each click on a link requires a new webpage download. Instead, interactive web applications refer to single-page web applications that have functionality similar to that of a desktop software application. Users utilise a browser to interact with these applications, relying on JavaScript on the browser side for a substantial portion of the functionality. Communication with the cloud is performed using asynchronous AJAX requests. The server that receives the JavaScript requests must calculate and send the associated response in near real time. Interactive web applications simplify the deployment of applications. The developer does not need to create an application for every operating system, and the user does not have to install different applications on their device. Examples of interactive web applications include Google Docs [80], Office 365 [81], and mapping services like Google Maps.  
In this type of CIA, users want to use an application through the browser as if it were a traditional program installed on a desktop computer, without noticeable additional latency. For example, web-based mapping services such as Google Maps or Bing Maps allow users to interactively navigate a map service through a web interface. It is essential that when the user wants to move the map or zoom in on a specific region, the time elapsed between their keyboard or mouse actions and the associated graphical response is as short as possible. Developers of interactive web applications divide the application logic between the client and the server. Interactive web pages consist of four main components: the user interface, client logic, communication, and server logic. The user interface is made up of HTML elements, structured by CSS. The client uses JavaScript to develop part of the CIA's processing logic and capture keyboard or mouse interactions, modifying the structure of the HTML DOM on the fly. Unlike traditional web pages, in these CIAs, screen updates are not generated by a click on a link that opens another static HTML or by periodic JavaScript or CSS updates. Instead, updates are interactively triggered by user interactions. Two main strategies for rendering graphic elements and updating them on the fly are used: modifying the structure of the HTML DOM and interactively drawing on an HTML element called a canvas. The strategy of using the canvas element for graphical rendering is becoming increasingly important for performance reasons. In the canvas element, different graphical elements can be drawn and modified in real time without propagating changes in the structure of the HTML document that can compromise the appearance of the CIA. For example, Google Maps has used the canvas for a long time, and other services, such as Google Docs and Google Sheets, have recently adopted this strategy to improve user interactivity. The client must communicate with the server that executes a significant part of the logic of these CIAs. Web interactive applications normally use AJAX for communication with the server. Some services, such as Google Docs, can generate local graphical updates and wait for the server to confirm them later. However, this is not possible for all types of CIAs since the service may need active communication with the server side (e.g., Google Maps, where the satellite images are sent by the server).