Various software applications offering functionalities for a specific task or a range of tasks (e.g., word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.) may be available to users via the web. Such applications may herein be referred to as web-based applications. Such web-based applications may offer functionalities similar to the functionalities that were once only available by computer programs executing locally on a personal computer or on a terminal in a local area network.
A web-based application may be hosted by one or more servers and accessible via a communications network such as the Internet. A user of a client computing device may access a web-based application by connecting to a server hosting the web-based application with a client application running in a web browser application (herein referred to as a web client application) executing on the client computing device. The web client application may connect to the server hosting the web-based application and may download the web application's interface and data associated with the application to the client computing device. In some cases, some of the functionality of the web-based application may be downloaded to the client computing device for local execution.
The user may enter information into the interface or manipulate information using the interface via the web client application. The information may be transmitted to the server for processing. The server may transmit the processed data back to the client computing device and/or may store the processed data in a computer-readable medium for subsequent access via the web-based application.
Currently, a web client application may rely on a server to generate images for the web client application to present to the user. These images may represent text, shapes, charts, tables, etc. The web client application may have an arbitrary client-side display resolution that may vary based on hardware and/or software configurations. As can be appreciated, this may create a challenge when attempting to display high quality images.
The client computing device may be one of various types of computing devices with varying sizes and types of displays. For example, one user may utilize a tablet computing device to access a web-based application while another user may utilize a desktop computer with a large monitor.
Currently, servers may send images to web client applications sized for one resolution. The web client application may then either perform client-side scaling of the images or display the images at the fixed size. If a web client application performs client-side scaling, this may result in image fidelity degradation. For example, if an image of a given resolution is scaled up to a display on a larger screen, the image may look less precise; for example, text may appear more blurry and less readable. If a web client application displays an image at the fixed size, this may result in wasted, empty space if the server-provided image is too small or may require scroll bars if the server-provided image is too large for the client.
It is with respect to these and other considerations that the present invention has been made.