JavaScript Core, DOM and BOM. All these are different. How?

चूंकि सामान्यतः ECMAScriptJavaScript दोनों को एक ही समझा जाता है, जबकि JavaScript,  ECMS-262 से कुछ ज्यादा है। एक Complete JavaScript Implementation के तीन हिस्से होते हैः

  • The Core (ECMAScript)
  • The Document Object Model (DOM)
  • The Browser Object Model (BOM)
JavaScript Implementation - JavaScript in Hindi

ECMAScript

ECMA-262 में Define किया गया ECMAScript किसी Web Browser से Tied नहीं होता। वास्तव में इस Language में Input Output के लिए कोई Method नहीं है। ये Standard केवल एक Specification है जो विभिन्न Companies को एक आधार देता है कि उन्हें JavaScript को किस प्रकार से Implement करना चाहिए, ताकि वह विभिन्न अन्य Web Browsers के Standard के समरूप रहे। Web Browsers केवल वह Host Environment होते हैं, जिसमें ECMAScript Implementation Exist होता है।

एक Host Environment ECMAScript के Implementation का आधार होता है और ये Host हमेंशा कोई Web Browser ही हो, ऐसा नहीं है। इसीलिए Adobe Company ने इस Specification के आधार पर अपनी Scripting Language Develop की है जिसका नाम ActionScript है। इस Scripting Language का भी आधार ECMAScript ही है।

ECMAScript के Implementation के साथ ही विभिन्न Web Browsers अपने स्वयं के भी कुछ Extensions Develop करते हैं, ताकि Web Browsers को Users ज्यादा बेहतर तरीके से Web Browsing के लिए Use कर सकें। DOM यानी Document Object Model भी एक Extension ही होता है जो अपने Core के रूप में ECMAScript के Type व Syntax को Use करता है तथा Host Environment जो कि Web Browser भी हो सकता है और कोई अन्य Software भी, Additional Functionality Provide करता है। सामान्यतः अन्य Host Environments के रूप में ScriptEaseAdobe Flash को समझा जा सकता है।

ECMA-262 वास्तव में किसी Web Browser को Reference नहीं करता बल्कि इसका Specification किसी भी Scripting Language के निम्न Parts को Describe करता हैः

  • Syntax
  • Types
  • Statements
  • Keywords
  • Reserved Words
  • Operators
  • Objects

ECMAScript केवल किसी Language के Implementation का Description मात्र है, इसलिए JavaScript वास्तव में ECMAScript को Implement करता है, ECMAScript स्वयं कोई Programming Language नहीं है बल्कि इसके आधार पर अन्य Scripting Language Develop की गई हैं, जिनमें से कुछ Most Poplar Implementations निम्नानुसार हैं:

JavaScript Implementation - JavaScript in Hindi

 

वर्तमान समय में ECMAScript का 5th Version आ चुका है, लेकिन इसे पूरी तरह से विभिन्न Web Browsers में Implement नहीं किया गया है। वर्तमान समय में Internet Explorer, FireFox, Safari, Chrome व Opera जो कि सबसे ज्यादा Use किए जाने वाले Web Browsers हैं, ने ECMAScript3.1 Specification को पूरी तरह से Implement किया है।

Document Object Model(DOM)

DOM एक Application Programming Interface है, जिसे XML के लिए Define किया गया था ताकि HTML Documents को Extend किया जा सके। DOM किसी भी Document को Nodes की एक Hierarchy के रूप में Memory में Model करता है। HTML या XML Document का हर Element या Tag, Attributes व Texts आदि DOM के Nodes को Represent करते हैं। उदाहरण के लिए निम्न HTML Code देखिएः

<html>
  <head>
    <title>Sample page</title>
  </head>
  <body>
    <p>Hello World! </p>
  </body>
</html>

जब ये HTML Code Web Browser की Memory में Load होता है, तब निम्नानुसार Form में विभिन्न HTML Elements की एक Hierarchy बन जाती हैः

JavaScript Implementation - JavaScript in Hindi

किसी Document के विभिन्न Elements के Memory में इस तरह से Model होने की व्यवस्था को ही DOM या Document Object Model कहा जाता है, जिसमें Document के विभिन्न Elements DOM के एक Node को Represent करते हैं और हर Node एक Object की तरह व्यवहार करता है, जिसकी स्वयं की कुछ Properties व Behaviors होते हैं।

Document के विभिन्न Contents की एक Tree बनाकर DOM किसी Web Development को अपने Document पर पूरी तरह से Control करने की सुविधा प्रदान करता है क्योंकि JavaScript जैसी किसी Scripting Language का प्रयोग करके Web Development अपने Document के किसी Node को Remove कर सकता है, DOM में नया Node Add कर सकता है, किसी अवांछित Node को Replace कर सकता है अथवा DOM API का प्रयोग करते हुए किसी Node को Modify कर सकता है।

चूंकि Web Browser में Document Render होने से पहले उस Document का DOM Create होता है, जो कि उस Document का In-Memory Model होता है और Web Browser के Window में वही दिखाई देता है, जो DOM में होता है, इसलिए DOM में किए जाने वाले परिवर्तनों का Effect तुरन्त Web Browser में Reflect होता है। अत: DOM किसी भी Client Side Scripting Language के लिए एक मुख्‍य Source होता है, जिस पर वह Scripting Language विभिन्न प्रकार के Operations Perform करके Document को ज्यादा Interactive बनाने में सक्षम हो पाता है।

चूंकि DOM को विभिन्न Companies ने अपने-अपने Web Browsers में अपनी सुविधानुसार अलग-अलग तरीकों से Develop किया था, इसलिए Web को Cross Platform यानी Platform Independent बनाए रखने के लिए व सभी Web Browsers में किसी Document को एक जैसा दिखाने के लिए फिर से एक Standard तरीके की जरूरत को महसूस किया गया। फलस्वरूप एक नया Organization अस्तित्व में आया जिसका नाम World Wide Web Consortium (W3C) था। ये Organization विभिन्न प्रकार के Web Related Standards Develop करने का काम करता है। इस Organization में विभिन्न बडी कम्पनियों जैसे कि Microsoft, Google, Yahoo, AOL आदि Participate करते हैं और Web किस दिशा में आगे बढेगा इस बात का निर्णय लेकर Standards Create करते हैं।

DOM के आज तक में कुल तीन Levels W3C द्वारा Define किए गए हैं। DOM Level 1 सबसे पहले October 1998 में Recommend किया गया था। इस DOM के दो हिस्से DOM CoreDOM HTML थे।

DOM Core किसी XML Based Document को Structure करने की सुविधा प्रदान करता है ताकि Developers किसी XML Document के विभिन्न हिस्सों को आसानी से Access कर सकें तथा DOM HTML वास्तव में DOM Core का ही एक Extension है, जिसमें HTML के साथ कुछ Specific Objects व Methods को Add करके HTML को Extend किया जाता है।

DOM JavaScript नहीं है और ECMAScript की तरह ही इसे भी कई अन्य Programming Languages में Implement किया गया है। हालांकि Web Browsers में DOM को ECMAScript का प्रयोग करके Implement किया गया है और अब ये DOM JavaScript Language का एक सबसे बडा व सबसे महत्वपूर्ण हिस्सा है।

DOM भी ECMAScript की तरह ही केवल एक Specification है। जिस तरह से ECMAScript के आधार पर विभिन्न प्रकार की Scripting Languages को Develop किया गया है, उसी तरह से DOM के आधार पर विभिन्न प्रकार की Programming Languages में किसी Document को Access व Manipulate करने के तरीकों को Develop किया जाता है ताकि एक Programming Language में Develop किया गया Document किसी दूसरी Programming Language में भी आसानी से उपयोग में लिया जा सके।

हालांकि DOM Level 1 का मूल उद्‌देश्‍य किसी Document को Structure करना था, ताकि Developers JavaScript जैसी Client Side Scripting Language द्वारा Document के विभिन्न हिस्सों को आसानी से Access व Manipulate कर सकें जबकि DOM Level 2 को Develop करने का मूल उद्‌देश्‍य DOM के साथ Mouse व User Interface Events, Ranges, Traversals, तथा Cascading Style Sheets को Support करवाना था, ताकि Document को न केवल बेहतर तरीके से Structure किया जा सके बल्कि उसे आसानी से Style भी किया जा सके। साथ ही उसे Interactive भी बनाया जा सके। इसलिए DOM Level 1 के Core को XML Namespaces को Support करने के लिए Extend किया गया। DOM Level 2 में निम्न नए Modules को Extend किया गया थाः

  • DOM Views
  • DOM Events
  • DOM Styles
  • DOM Traversal and Range

Document की Styling करने से पहले व Styling करने के बाद एक ही Document के कई Views हो जाते हैं। इन Views को Handle करने के लिए DOM Views का Concept Describe किया गया।

Document को User के लिए ज्यादा Interactive बनाने के लिए विभिन्न प्रकार के EventsEvent Handlers को DOM Events के रूप में Describe किया गया।

Document की Styling को Document के Structure से अलग रखने के लिए DOM Styles को Describe किया गया ताकि Document को Manage व Handle करना आसान हो सके।

DOM Traversal and Range को Describe करके DOM को Access, Manipulate व Traverse करने के लिए नए Descriptions को Define किया गया।

वर्तमान समय में DOM Level 3 को Describe किया जा रहा है, जिसमें ऐसे Methods को Support किया जा रहा है ताकि Web Browser या Host Environment के Document को Local Device पर Save किया जा सके व Local Device से Host Environment में Load किया जा सके।

एक तरह से देखा जाए, तो अब Web Technology पूरी तरह से Desktop Technology के समकक्ष आने वाली है। क्योंकि DOM Level 2 तक किसी भी Document को Local Device में Save नहीं किया जा सकता था, इसीलिए कोई भी User केवल वही Document देख सकता था, या वैसे ही किसी Document को Access कर सकता था, जैसा Developer ने उसे अधिकृत किया था।

लेकिन DOM Level 3 के पूर्ण Implementation के बाद ये बात पूरी तरह से बदल जाएगी। क्योंकि उस स्थिति में User अपनी इच्छानुसार किसी Document को Modify कर सकेगा और अपने Personal Device पर Save कर सकेगा। जिससे एक ही Document को अलग-अलग Users अपनी इच्छानुसार अलग-अलग तरीके से Access व Manipulate कर सकेंगे।

DOM Level 3 का Implementation धीरे-धीरे होने लगा है और HTML5 DOM Level 3CSS3 का ही एक Implementation है, जो कि धीरे-धीरे विभिन्न Web Browser में Support किया जाने लगा है।

इन मूल DOMs के अलावा कुछ अन्य DOMs भी हैं, जिन्हें अलग प्रकार की जरूरतों को पूरा करने के लिए Define किया गया है। उदाहरण के लिए SVG 1.0 व MathML 1.0 का अपना DOM है। SVG Host Environment में Graphics Develop करने से संबंधित Standards को Handle करता है, जबकि MathML Mathematics से संबंधित Functions, Formulas आदि को Handle करता है। इसी तरह से SMIL के लिए Document में Multimedia Integration से संबंधित DOM को Specify किया गया है।

इनके अलावा अन्य Languages ने अपनी जरूरत के अनुसार अपना स्वयं का DOM Develop किया है। उदाहरण के लिए Mozilla ने XML का प्रयोग करके XUL (XML User Interface Language) विकसित किया है, जिसका प्रयोग Mozilla व Firefox Web Browsers के Front End को Develop करने के लिए किया गया है। लेकिन इस Language व ऐसी ही कई और Languages को W3C ने Standard के रूप में Accept नहीं किया है, जिन्हें अलग-अलग Companies ने XML के आधार पर अपनी Specific जरूरतों को पूरा करने के लिए Develop किया है।

Browser Object Model (BOM)

Web Browser के शुरूआती दिनों में Standards बनने से पहले विभिन्न Web Browsers बनाने वाली Companies ने अपने-अपने Web Browsers में एक Specific तरह का Browser Object Model बनाया था, जो Web Browser को Access Manipulate करने की सुविधा देता था। BOM का प्रयोग करके Web Developers अपने Web Page से अपने Web Browser को Access करने की क्षमता प्राप्त करते थे।

चूंकि विभिन्न Web Browser बनाने वाली Companies अपने Web Browsers को अपनी इच्छानुसार बनाती हैं, इसलिए यही एक ऐसा हिस्सा है जहां विभिन्न Companies के Web Browsers में JavaScript Implementation का कोई Standard नहीं है।

प्राथमिक रूप से BOM Web Browser Window व Frames के साथ Deal करता है लेकिन सामान्यतः Browser Specific Extensions को JavaScript में Develop किया जाता है जो कि BOM के एक हिस्से की तरह काम करता है। कुछ Extensions निम्नानुसार हैं, जो लगभग सभी Web Browsers में Common हैं हालांकि उनको अलग-अलग तरीके से Implement किया गया हैः

  • नया Window Popup करने की Capability
  • Web Browser Window को Move, Resize या Close करने की Capability
  • navigator Object जो कि Web Browser से संबंधित Detailed जानकारी देता है।
  • location Object जो कि Web Browser में Loaded Web Page की Detained जानकारी देता है।
  • screen Object हो कि User के Computer के Screen Resolution की Detailed जानकारी देता है।
  • Cookies का Support भी एक Extension के रूप में Web Browser के BOM का हिस्सा होता है।
  • XMLHttpRequest तथा Internet Explorer का ActiveXObject भी Web Browser के BOM की Capabilities का ही एक हिस्सा है।

अलग-अलग Standards के साथ JavaScript के भी कई Versions विभिन्न Web Browsers में Implement किए गए हैं। वर्तमान समय में लगभग सभी Web Browsers JavaScript 2.0 Version को Support कर रहे हैं। JavaScript के Version बढने के साथ उसके Features जैसे कि Keywords, Syntaxes, Features आदि भी Change होते हैं। JavaScript 2.0 वास्तव में ECMAScript 3.1 Proposal का ही Implementation है। चूंकि ECMAScript का 5th Version भी आ चुका है, तो जाहिर सी बात है कि जैसे-जैसे Web Browsers ECMAScript के इस 5th Version को Support करने लगेंगे, JavaScript का एक और नया Version भी आएगा।

Advavnce JavaScript in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Advance JavaScript in Hindi | Page: 669 | Format: PDF

BUY NOW GET DEMO REVIEWS