Browser Object Model (BOM) in JavaScript – The Internals

Browser Object Model (BOM): हालांकि हर Web Browser में एक JavaScript Engine होता है, जो JavaScript Codes को Process व Interpret करता है, फिर भी हमारा JavaScript Program कभी भी Web Browser से Directly Interact नहीं कर सकता, बल्कि JavaScript हमें Objects का एक ऐसा Collection Provide करता है, जो कि हमारे JavaScript Program व Web Browser के बीच Intermediary की तरह काम करते हैं।

यानी हमें हमारे Web Browser के साथ जब भी कोई Interaction करना होता है, तो हम हमारे Web Browser को JavaScript द्वारा Directly Access नहीं करते बल्कि हम JavaScript द्वारा Provided किसी Appropriate Object के साथ Interaction करते हैं और वह Object अपने Web Browser के साथ Interact करता है। Objects के इसी Collection को BOM (Browser Object Model) कहा जाता है, जिनका मुख्‍य Objective, Web Browser व JavaScript के बीच एक Simple व Consistent  Interface Provide करना मात्र होता है।

जैसाकि हमने पहले भी कहा है कि JavaScript मूल रूप से तीन हिस्सों का बना हुआ है। पहला हिस्सा Core ECMAScript का है, दूसरा हिस्सा DOM का है व तीसरा हिस्सा BOM का है और BOM, JavaScript का वह हिस्सा है, जो JavaScript को Web Browser के साथ Interact करने की सुविधा प्रदान करता है।

लेकिन एक JavaScript Developer के लिए BOM ही सबसे ज्यादा परेशानी पैदा करने वाला हिस्सा भी है क्योंकि BOM का कोई Standard बनने से पहले ही Web Browsers बनाने वाली Companies ने अपने Web Browsers बना दिए थे और सभी Companies ने अपने Web Browser को अपनी सुविधानुसार अलग-अलग Patterns व Technology का प्रयोग करते हुए Develop किया था। जिसका परिणाम ये हुआ कि एक Standard Web Browser (BOM) कैसा होना चाहिए, इस विषय में कोई Standard बनने से पहले ही BOM बन चुका था।

अत: Web Browsers (BOM) बनने के बाद में BOM का Standard Develop नहीं किया जा सकता था। क्योंकि ऐसा करने पर सभी Companies को अपने पुराने Web Browsers को फिर से पूरी तरह से Change करना पडता, जो कि सम्भव नहीं था। इसलिए BOM (Web Browsers) का कोई Specific Standard नहीं बन पाया।

परिणामस्वरूप आज भी विभिन्न Web Browsers के BOM आपस में पूरी तरह से एक दूसरे के Compatible नहीं हैं। जिसकी वजह से जब हम JavaScript का प्रयोग करते हुए Web Browser यानी BOM से Interact करते हैं, तब अलग-अलग Web Browsers में समान Functionality प्राप्त करने के लिए भी हमें अलग-अलग प्रकार के Codes लिखने पडते हैं।

हम Web Browser को ही BOM (Browser Object Model)भी कह सकते हैं। यानी BOM व Web Browser दो अलग चीजें नहीं हैं बल्कि एक ही चीज के दो अलग नाम हैं। इसलिए पुस्तक के इस Section में हम विभिन्न Companies द्वारा Develop किए गए Web Browsers के Model के Common Objects के बारे में जानेंगे।

हालांकि विभिन्न Companies ने अपने Web Browser में बहुत सारे ऐसे Features Add किए हैं, जो कि केवल उसी Company के Web Browser में Available हैं। लेकिन हम उन Specific Features के बारे में चर्चा नहीं करेंगे क्योंकि हम जब भी कोई Web Site Create करते हैं, तो हम यही चाहते हैं कि उस Web Site का हर Web Page सभी Web Browsers में एक समान दिखाई दे व एक समान रूप से Behave करे।

इसलिए यदि हम किसी Particular Company के Web Browser के Specific Features को Use करते हुए अपने Web Page में कोई Functionality Add करेंगे, तो वह Functionality केवल उसी Web Browser में Reflect होगी अन्‍य में नहीं।

हालांकि लगभग सभी Web Browsers को अलग-अलग Companies, Organizations या Individuals ने Create किया है, लेकिन फिर भी सभी Web Browsers का BOM कुछ हद तक समान हैं, जिन्हें हम निम्नानुसार एक Tree Structure के रूप में Represent कर सकते हैं:

BOM-The-Web-Browser-Object-Model - JavaScript in Hindi

जैसाकि हम उपरोक्त चित्र में देख सकते हैं कि window Object पूरे BOM यानी Web Browser का Top Level Object है। दूसरे शब्दों में कहें, तो window Object हमारे Current Web Browser के Window को Represent करता है। यानी हम हमारे Web Browser में JavaScript के माध्‍यम से जो भी Functionality प्राप्त करना चाहते हैं, वे सभी Functionality हमें window Object के माध्‍यम से ही प्राप्त होती हैं क्योंकि window Object किसी भी Web Browser का Root Object होता है।

window Object किसी भी Web Browser के किसी Instance को Represent करता है। यानी यदि हम एक ही Web Browser में कई Tabbed Windows Open करें, तो हर Tabbed Window एक window Instance होता है।

window Object किसी Web Browser में दो काम करता है। पहला Web Browser के साथ JavaScript Interface की तरह और दूसरा Core JavaScript यानी ECMAScript Global Object की तरह। यानी किसी Web Page में Define किया गया हर Object, Variable व Function, Web Browser के इस window Object को एक Global Object की तरह Use करता है। दूसरे शब्दों में कहें, तो Global Object को हम Program का Global Scope भी कह सकते हैं।

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