JavaScript CSS Engines: चूंकि JavaScript, वास्तव में BOM (Browser Object Model), Core ECMAScript व DOM (Document Object Model) तीनों का Combination है, इसलिए JavaScript को समझने के लिए हमें इन तीनों को Best तरीके से समझना होगा और जैसाकि हमने पहले भी कहा है कि इस पुस्तक में Web Browser ही हमारा Host Environment है, इसलिए Web Browser को अच्छी तरह से समझे बिना हम JavaScript को उसकी पूरी ताकत के साथ उपयोग में नहीं ले सकते।
Web Browser एक ऐसा माध्यम होता है जो किसी Web Application या Web Document को Download करता है, Render करता है व Execute करता है। Web Browsers दो तरह के होते हैं। पहले प्रकार के Web Browsers केवल Text Browser होते हैं जो केवल Text Content को ही Render करते हैं। lynx एक ऐसा ही Web Browser है जो कि http://lynx.isc.org/ Website पर Free Available है।
जबकि दूसरे प्रकार के Web Browser Text के अलावा विभिन्न प्रकार के Multimedia जैसे कि Sound, Audio, Video, Images, Animations आदि को भी Render करने में सक्षम होते हैं। Google Chrome, Mozilla Firefox, Apple Safri, Internet Explorer, Opera आदि सबसे ज्यादा Use होने वाले इस Group के Modern Web Browsers के Examples हैं।
Engines
चूंकि एक Web Browser विभिन्न प्रकार के Resources जैसेकि HTML Document, CSS Stylesheets, Multimedia Plugins, आदि को आपस में व्यवस्थित तरीके से Organize करके User के सामने Present करता है, इसलिए इन विभिन्न प्रकार के Resources को Process करने के लिए एक Web Browser में विभिन्न प्रकार के Resource Processors होते हैं, जिन्हें Engines कहा जाता है।
ये Engines ही किसी CSS Style को किसी HTML Element पर Apply करते हैं अथवा किसी Element पर Click करने पर Trigger होने वाले Event को Response करते हैं। यानी ये Engines ही Internally विभिन्न प्रकार के HTML, CSS, JavaScript, XML आदि Codes को Process करते हैं और हमारे सामने एक Well Organized Web Page Render करते हैं। Engines की कार्यप्रणाली को हम एक Car के उदाहरण द्वारा बेहतर तरीके से समझ सकते हैं।
जिस प्रकार से किसी Car की Body उसका बाहरी ढांचा मात्र होता है और उस Car की Body के Good Looking होने का मतलब ये नहीं होता कि वह Car वास्तव में Efficient व Powerful है बल्कि उस Car में जो Engine होता है, वह Engine ही उस Car की Efficiency व Power तय करता है।
ठीक इसी प्रकार से कोई Web Browser कितना अच्छा दिखाई दे रहा है अथवा Web Browser का User Interface कितना अच्छा है, इस बात से हम Web Browser की Inner Working व Power का पता नहीं लगा सकते, बल्कि Web Browser की Efficiency व Power पूरी तरह से उसमें Use किए गए Engines पर निर्भर करती है, जो कि किसी भी Web Page के विभिन्न Resources (HTML, XML, CSS, JavaScript Codes) को Process करके Render करने का काम करते हैं।
किसी Web Page का पूरी तरह से Process होकर Web Browser में पूरी तरह से Load होने की प्रक्रिया को Web Page का Render होना कहते हैं।
किसी भी Web Browser में मूल रूप से हमेंशा दो प्रकार के Engines होते हैं%
- Rendering Engine – इसे सामान्यत% Layout Engine भी कहते हैं जो कि HTML व CSS Codes को Process करके एक Page को Screen पर व्यवस्थित तरीके से Organize करके Visible या Show करता है।
- JavaScript Engine – ये Engine, JavaScript Codes को समझकर Process व Execute करता है, जिसका Effect Web Page व Web Browser के Chrome पर Reflect करता है।
Web Browser का वह हिस्सा जिससे User Interact करता है, Web Browser का Chrome कहलाता है। किसी Web Browser का Menubar, Bookmark Toolbar, Web Browser का Frame, Web Browser का Title Bar, Standard Toolbar आदि Web Browser के Chrome का हिस्सा होते हैं।
Web Browsers के ये Engines, User Inter से पूरी तरह से अलग होते हैं। यानी कोई भी User Interface Element जैसेकि Menubar, Standard Toolbar या Navigation Bar इन Engines से Directly Connected नहीं होता।
विभिन्न प्रकार के Rendering व JavaScript Engines को अलग-अलग प्रकार की Companies, Organizations या Individuals ने Develop किया है और उन्होंने ही ये तय किया है कि कोई Web Page उनके Web Browser में किस प्रकार का दिखाई देगा। इसलिए यदि हम एक ही Web Page जैसे कि http://www.google.com के Home Page को अलग-अलग Web Browsers में Open करें, तो समान Home Page भी अलग-अलग Web Browsers में Exactly समान दिखाई नहीं देता।
चूंकि Web Browsers के Engines, Web Browser के User Interface से पूरी तरह से अलग रहते हैं इसलिए Technically ऐसा सम्भव है कि एक ही Rendering या JavaScript Engine को Use करते हुए दो बिल्कुल अलग Web Browsers या Software (Host Environment) Create किए जा सकते हैं, जो कि एक दूसरे से बिल्कुल भिन्न दिखाई देते हों जबकि विभिन्न Web Browsers के User Interface को हम JavaScript Engines के Container की तरह समझ सकते हैं।
यानी JavaScript Engine किसी Web Browser में ठीक उसी तरह से Exist होता है, जिस तरह से किसी Car में उसका Engine Exist होता है और Web Browser का User Interface उस JavaScript Engine के Skin या Body की तरह होता है और जिस तरह से समान प्रकार का Engine Use करते हुए अलग-अलग प्रकार की Body की Car बनाई जा सकती है, उसी तरह से समान प्रकार का JavaScript व Rendering Engine Use करते हुए, अलग-अलग प्रकार के Web Browser User Interface बनाए जा सकते हैं।
वर्तमान समय में बहुत ज्यादा उपयोग में लिए जाने वाले विभिन्न Web Browsers के Rendering Engines को हम निम्न सारणी अनुसार समझ सकते हैं%
Rendering Engine | Web Browser |
Trident | Microsoft Internet Explorer |
Gecko | Mozilla Firefox |
Presto | Opera browser |
WebKit | Apple Safari (including iPhone), Google Chrome, Nokia (for mobile devices) |
इसी तरह से वर्तमान समय में बहुत ज्यादा उपयोग में लिए जाने वाले विभिन्न Web Browsers के JavaScript Engines को हम निम्न सारणी अनुसार समझ सकते हैं:
JavaScript Engine | Web Browser |
Jscript | Microsoft Internet Explorer |
SpiderMonkey | Mozilla Firefox (up to and including version 3.5) |
TraceMonkey | Mozilla Firefox (version 3.6) |
JavaScriptCore | Apple Safari (up to and including version 3.2) |
Nitro | Apple Safari (version 4) |
V8 | Google Chrome |
Futhark | Opera |
जैसाकि उपरोक्त सारणी द्वारा हम समझ सकते हैं कि एक ही Web Browser में हम Rendering Engine व JavaScript Engines के अलग-अलग Combinations को Use कर सकते हैं।
उदाहरण के लिए Mozilla Firefox ने अपने Firefox 3.5 Version तक SpiderMonkey नाम के JavaScript Engine को Use किया है जबकि बाद के Versions में TraceMonkey नाम के Version को Use करना शुरू कर दिया है।
विभिन्न JavaScript Engine Develop करने वाले Developers का मूल उद्देश्य यही है कि उनका Engine ज्यादा से ज्यादा तेज गति से JavaScript Codes को Process करे, ताकि Web Browsers Based Web Applications, जो कि JavaScript पर निर्भर हों, उसी Speed से Run हो सकें, जिस Speed से Compiler Based Executables Run होते हैं। इसलिए कई मायनों में Web Browser एक प्रकार से नया Operating System बनते जा रहे हैं।
इससे पहले कि हम आगे बढें, Web Browser की कार्यप्रणाली को भी थोडा बेहतर तरीके से समझना उपयोगी रहेगा, क्योंकि Web Browser के Request व Response Message से संबंधित कई प्रकार के Web Browser Related Objects होते हैं, जिन्हें JavaScript द्वारा Access व Manipulate करने की जरूरत पडती है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance JavaScript in Hindi | Page: 669 | Format: PDF