CSC/ECE 517 Fall 2010/ch6 6g ss

From Expertiza_Wiki
Revision as of 07:17, 17 November 2010 by Spatil (talk | contribs)
Jump to navigation Jump to search

Document Object Model


Introduction

History

  • Before DOM became an official W3C specification, the web community the web community had started to develop ways of creating page-based script programs. This early work led to development of Dynamic HTML <refer this>, which was primarily used for richer user interfaces than plain HTML.
  • LiveScript: At the time, Netscape Navigator was a very popular browser, and also was the first to bring out a programming language that would allow web pages to become interactive. The language, called LiveScript <refer> was designed at Netscape Communications and came integrated into the Netscape Navigator browser.
  • JavaScript: In December 1995, LiveScript was renamed JavaScript and released as part of Netscape Navigator 2.0.
  • Jscript & vbscript : Internet Explorer was updated to support two integrated languages, vbscript and Jscript. Jscript was very similar to JavaScript. In July 1996, Microsoft released Internet Explorer 3.0 supporting these languages.
  • ECMAScript: Netscape delivered JavaScript to Ecma International for standardization and the work on the specification, ECMA-262, began in November 1996.
  • In June 1997, ECMA adopted a hybrid version of the scripting languages called ECMAScript. However, ECMAScript arrived late for the 4.0 releases of Netscape Navigator and Internet Explorer. Each introduced their own document object model, DHTML and dHTML, that came to be called Dynamic HTML.
  • DOM: At the beginning of 1997, the companies involved in this consortium (including Netscape Communications and Microsoft) decided to find a consensus around their object models to access and manipulate documents. While trying to stay as backward compatible as possible with the original browser object models, the W3C's Document Object Model (DOM) provided a better object representation of HTML documents.
  • DOM on Client: <textbook> The Internet Explorer 6 and Netscape Navigator 6 browsers have achieved complete support for DOM Level 1. Other browser vendors followed them.
  • DOM on Server: Soon did the companies realized that the benefits of DOM can be applied on server side as well as client side. DOM implementations began appearing for server-side products as well. One well-known is the Xerces <http://xerces.apache.org/xerces-c/>parser from Apache Foundation.
  • HTML and XML: In 1996, a new markup language, the Extensible Markup Language (XML), was developed in the W3C as well. Meant to remove the HTML language's extensibility restrictions, the idea of developing an object model for XML quickly became another goal of the DOM effort.
  • In June 2004, Ecma International published ECMA-357 standard, defining an extension to ECMAScript, known as E4X (ECMAScript for XML).


Characteristics

Comparison between prototype-based languages and class-based languages

Feature Class Based Programming e.g. Java, C# Prototype-Based Programming e.g. JavaScript, Self
Object Model Based on the class and instance entity model i.e. structure of object is defined by classes. Every object is an instance, there are no classes.
Object definition and creation Class defined with explicit class definition; class instantiated with help of constructors. Creates objects by assigning an object as the prototype where each prototype is associated with a constructor function.
Abstraction Uses abstract definitions/representation. Does not use abstract definitions.
Parental Dependency The parent of an object cannot be altered Allows to change parent of object at runtime
Inheritance Class definitions are used to define subclasses and the subclasses inherit properties by following the class chain. Objects inherit properties based on the hierarchy of the prototype chain.
Dynamic Structure The class structure is static and contains all the properties that an instances of a class can have. One cannot add properties dynamically at run time. The prototype or constructor function specifies the initial set of properties and one can add or remove properties dynamically of the particular object or of the entire set of objects.


Classification of Prototype Based Languages

Slots or methods and variables

Object Creation

Inheritance and Sharing

Delegation

Concatenation

Concatenation Vs Delegation

Concatenation Delegation
read Car.model Mitsubishi Mitsubishi
read Car.maxSpeed 110 110
read Car.licencePlate NC765 NC765
write Car.maxSpeed = 75
read Vehicle.maxSpeed 75 50
read Truck.maxSpeed 90 90
read Truck.model 4 Wheel Drive 4 Wheel Drive
read Truck.licencePlate NCXXX NCXXX
write Truck.model = Volvo
read Truck.model Volvo Volvo


Primitives of virtual machine

Programming Constructs

Creating Objects

Cloning

Delegation

Message Passing

Other Prototype Based Languages

Self

Omega

Kevo

NewtonScript

Criticism

Applications

Conclusion

Suggested Reading

References / External Links

  1. Marcus Arnstrom, Mikael Christiansen, Daniel Sehlberg (May 2003), Prototype-based programming.
  2. Borning A (1986), Classes versus Prototypes in Object-Oriented Languages, IEEE Computer Society Press, In Proceedings of the IEEE/ACM Fall Joint Conference.
  3. Prototype and Class based programming languages
  4. Concept of Object Prototypes
  5. Event Delegation with JavaScript
  6. The NewtonScript Programming Language
  7. Prototype Theory
  8. James Noble, Antero Taivalsaari, Ivan Moore, Prototype Based Programming - Concepts, Languages and Applications
  9. C. Dony, J. Malenfant, D. Bardon, Classifying Prototype Based Languages
  10. Prototype-Based Inheritance
  11. Criticism of prototype based programming languages