Shared DHTML Browser

Geoffrey C. Fox
Help file edition: Marek Podgorny

Capabilities of the DHTML/JavaScript Shared Browser

This application allows a rich sharing of Web Pages between a Master Browser and any number of other (called Slave) instances.

The Shared Browser is built around the concept of events covering all actions, from form content or URL change to pinging of clients and window resizing. These events have in total some 100 distinct properties. A general serialization package for JavaScript events is used to pack events internally, and to send them to the Tango Interactive collaboratory backbone. TI backbone distributes the events too all browser instances.

In contrast to our universal Shared Browser application, DHTML Shared Browser does not support passing floor control from one instance to another. DHTML shared browser has been mainly designed as a tool for instructors, teachers, and virtual meeting chairpersons. If the function of passing shared browser control from one person to another is critical, the universal shared browser should be used.:w

The Shared Browser is written in some 10,000 lines of JavaScript. The dynamic HTML support is based on ideas published in Dynamic HTML, The Definitive Reference by Danny Goodman (1st ed, O'Reilly, 1998)

Core capability of the browser is a Shared Web Page, controlled by the Master instance, where location of shared page can be set from either:

Key "shareable" page properties include:

Note that a Web page through a form can specify access to a general server side object (such as a CGI Script, CORBA Broker, Servlet) Thusi, this shared web browser can in fact share any server side object accessed from HTML pages.

For forms, essentially all properties can be shared, including:

Further, forms can be saved, read back and/or transmitted between master and slave instances. This allows master to check and edit forms filled in by users of slace instances.

Dynamic HTML can be used in two ways the Shared Browser:

Browser behavior can be individually customized and saved either in named cookies or in web pages. Configurations can be retrieved by name. Possible customizations include:

Control Bar, forced above all other windows, provides key access to parameters and files. It also supports a JavaScript Clock recording time of events in last minute with 2 second resolution. Using Control Bar one can force "focus" on particular windows and so manage a cluttered desktop. Control Bar allows you to move other windows around, and it itself can be positioned in any corner of screen just by clicking a special button.

Shared DHTML Browser sessions can be completely archived in terms of all events generated or received from the Tango Interactive collaborative backbone; URL's seen in Shared Browser; Personal and System Bookmarks; Configuration data.

Optimized support for Powerpoint Internet Export and WebWisdom Pages:

Network Performance Monitor package allows one to:

Network performance monitor can be invoked or displayed locally or requested remotely by a netmaster. the Netmaster status is gotten by granting or requesting Tango Interactive Master Status (note however that this has NO impact on the main shared browser window functionality: Shared DHTML Browser CANNOT handle control over to a slave instance!)

You can get response from slave instances using System Bookmarks which can be controlled by any client

One can open up any number of simultaneous Shared Browser application sessions in Tango Interactive which run without interference. This allows anybody to control their own session.

Any user of the browser (both master and slave instances) can map URL's by changing an arbitrary stem. This enables support of mirror sites.

A heuristic algorithm with user customization is used to predict Next and Previous Pages in a set and to guess image locatuion of thumbnail for a page.

Thumbnails can be used to provide a preview (master) or review (slave instances) of coming or past pages.

There is a heartbeat which operates every 30 seconds and keeps slave instances "on track" inspite of deliberate or accidental deviations.

Using Tango Interactive notification mechanism, new clients joining the session are immediately updated. This means that Shared DHTML Browser provides support for the "latecomers".

Using a nifty set of heuristics to determine page loading, the shared browser delays subsequent events in slave instances until the page is ready (fully loaded). This copes with delays due to filling in passwords on protected pages or just greater delays on slave instances as compared to the master instance for a particular page

The user can save her/his personal pages of interest(called personal bookmarks) in pages which are conveniently controlled from central dialog box. These bookmarks are different from the usual bookmarks supported by each browser, since they are "shareable".

While only the master can control the main shared page, the bookmarks supported by a subsidiary system where only the URL is shared, can be distributed to all users by either master or, if given permission, a slave client. These pages can be used for general information of value during the session.

Location of the system and personal bookmarks can be set by the same mechanisms allowed for the main page.


Important disclaimer: the term "slave" is used in this document in a strictly technical sense, as in the "master-slave relationship", which is a notion well known and commonly used in computer science. Use of this term has absolutely no bearing on human users of the system. WebWisdom.com explicitely disclaims use of the term "slave" in any other contexts or with any other intent.

If the reader finds use of this term objectionable, we apologize. We have searched for a substitute term, but been unable to find one describing system functionality in an unambigious way.


TANGO Interactive support group
Last modified: Sun Feb 27 01:29:40 EST 2000