Wednesday, June 19, 2013

Functionality

Unlike straightforward web browsers, Opera Mini fetches all content through a proxy server and reformats web pages into a format more suitable for small screens. A page is compressed, then delivered to the phone in a markup language called OBML (Opera Binary Markup Language), which Opera Mini can interpret. The data compression makes transfer time about two to three times faster, and the pre-processing improves the display of web pages not designed for small screens.

When a user browses the web using Opera Mini, the request is sent via the General Packet Radio Service (GPRS) to one of the Opera Software company's proxy servers, which retrieves the web page, processes and compresses it, and sends it back to the client (user's mobile phone).

By default, Opera Mini opens one connection to the proxy servers, which it keeps open and re-uses as required. This improves transfer speed and enables the servers to quickly synchronize changes to bookmarks stored in Opera Link.

The Opera Software company maintains over 100 proxy servers to handle Opera Mini traffic. They run Linux and "are massively parallel and massively redundant."

Small-Screen Rendering

For devices with screens 128 pixels wide or smaller, the default rendering mode is Small-Screen Rendering (SSR). In this mode, the page is reformatted into a single vertical column so that it need only be scrolled vertically. Long lists and navigation bars are automatically collapsed (hiding most of the list or bar) by a feature known as "content folding". A plus (+) sign is displayed next to the collapsed content; when clicked, it toggles content folding.

Web developers can turn on SSR on the desktop edition of Opera to see how their websites will be displayed on mobile editions of Opera.

In SSR mode images are scaled down to no more than 70% of the screen size in either direction.

Complex script rendering

Opera Mini can send content in bitmap image form if a font required is not available on the device, which is useful for indic scripts. Hindi and a few other non-Latin character sets are supported.

JavaScript support

When browsing the Web with Opera Mini, JavaScript is processed by the proxy server, and is merely rendered on the device. This limits interactivity. Scripts cannot be run in the background on the device. If a script is paused (on the server), the browser must communicate with the server to unpause it. JavaScript will only run for a couple of seconds on the Mini server before pausing, due to resource constraints.

According to the documentation for Opera Mini 4, before the page is sent to the mobile device, its onLoad events are fired and all scripts are allowed a maximum of two seconds to execute. The setInterval and setTimeout functions are disabled, so scripts designed to wait a certain amount of time before executing will not execute at all. After the scripts have finished or the timeout is reached, all scripts are stopped and the page is compressed and sent to the mobile device. Once on the device, only a handful of events are allowed to trigger scripts:

onUnload: Fires when the user navigates away from a page onSubmit: Fires when a form is submitted onChange: Fires when the value of an input control is changed onClick: Fires when an element is clicked

When one of these events is triggered, Opera Mini sends a request to the proxy server to process the event. The proxy server then executes the JavaScript and returns the revised page to the mobile device.

Pop-ups, if not blocked by the JavaScript restrictions, replace the web page being viewed.

Opera has published Web content authoring guidelines to assist authors.

No comments:

Post a Comment