جسٹسکریپٹ عملی کاری
- پچھلے ویژن جسٹسکریپٹ تاریخ
- پائیدار ویژن ایک ایمپلائی ڈی او ایم نویاتی
جاوا اسکریپت کا اصل ایکم اسکریپت، اس زبان کی ناٹک اور بنیادی آئیکنوں کا توضیح دیتا ہے؛
DOM، صفحات کا محتوا کو ہینڈل کرنے کے طریقوں اور رابطوں کا توضیح دیتا ہے؛
BOM، براؤزر کے ساتھ رابطہ کے طریقوں اور رابطوں کا توضیح دیتا ہے。
ایکم اسکریپت، DOM اور BOM
ایکم اسکریپت ایک اہم معیار ہوگا، لیکن یہ صرف جاوا اسکریپت کا واحد حصہ نہیں ہوتا، یقیناً نہیں، نہ ہی واحد معیار شدہ حصہ ہوتا ہے۔ حقیقت میں، ایک مکمل جاوا اسکریپت نفاذ، مندرجہ ذیل 3 مختلف حصوں سے مل کر بنایا جاتا ہے:

ایکم اسکریپت
ایکم اسکریپت، کوئی خاص براؤزر سے منسلک نہیں ہوتا، حقیقت میں، یہ کوئی بھی استعمال کار کی نیچلی آمدورفت کا طریقہ نہیں کہتا (یہ سی پر نہیں، جس میں اس طرح کے کاموں کے لئے باہری کتابخانه پر انحصار کیا جاتا ہے) تو ایکم اسکریپت کیا ہوتا ہے؟ ایکم-262 معیار (دوسرے پارہ) کی توصیف مندرجہ ذیل ہے:
“ایکم اسکریپت کا جوائز، مختلف میزبان ماحولات کا اصل اسکریپت پروگرامنگ قابلیت فراہم کرتا ہے، لہذا اصل اسکریپت زبان، کوئی خاص میزبان ماحولات سے الگ طور پر مقرر کی جاتی ہے... ...”
وائب براؤزر ای سی ایم اے کے لیے ایک میزبان ماحول ہے، لیکن یہ یگینا نہیں ہے۔ حقیقت میں، بے شمار دیگر مختلف ماحولات موجود ہیں (مثلاً نومباس کا اسکریپٹ ایز اور ماکرومیدیا کے فلاش اور ڈائریکٹر ایم ایکس میں استعمال کی جانے والی اکشن اسکریپٹ) جو ای سی ایم اے نفاذ کو کا رکن بن سکتے ہیں۔ تو ای سی ایم اے نے براؤزر سے باہر کو کیا مقرر کیا؟
سادے الفاظ میں، ای سی ایم اے نے مندرجہ ذیل کو توصیف کیا:
- گرامر
- عوامل
- کلمات دستوری
- کلمات کلیدی
- ریزروڈ واٹس
- آپریٹر
- اشیاء
ای سی ایم اے صرف ایک توصیف ہے، جو اسکریپٹ زبان کی تمام خاصیتوں، طریقوں اور اشیاء کا تعریف کرتا ہے۔ دیگر زبان بھی ای سی ایم اے کو نفاذ کرسکتی ہیں تاکہ یہ اپنے بنیادی قوانین کا بنیاد بن سکے، جیسا کہ جی اسکریپٹ کی طرح:

ہر براؤزر نے اپنا اپنا ای سی ایم اے انٹر فیس نفاذ کیا ہے، جس کا نفاذ بھی مزید توسیع کیا گیا ہے، جس میں DOM اور BOM (جس کا تفصیل بعد میں دیا جائے گا) شامل ہیں۔ یقیناً دیگر زبان بھی موجود ہیں جو ای سی ایم اے کو نفاذ کرسکتی ہیں اور اس کو توسیع کرسکتی ہیں، مثلاً ویندوز اسکریپٹ ہوسٹ (ویندوز اسکریپٹنگ ہوسٹ، وائی ایچ ایس) اور ماکرومیدیا کے فلاش اور ڈائریکٹر ایم ایکس میں اکشن اسکریپٹ، نیز نومباس اسکریپٹ ایز، جو نومباس کے اسکریپٹ ایز میں استعمال کی جاتی ہیں۔
1. ای سی ایم اے کی ایڈیشن
ای سی ایم اے اسکریپٹ کچھ مختلف ایڈیشنوں میں تقسیم کی گئی ہے، یہ ایک نامزد ای سی ایم اے - 262 اسٹینڈرڈ میں دسایا گیا ہے۔ دیگر اسٹینڈرڈ کی طرح، ای سی ایم اے - 262 بھی ترمیم اور اپدیتی جاتی ہے۔ جب بڑی اپدیتیں دستیاب ہوتی ہیں تو ایک نئی ایڈیشن کا اسٹینڈرڈ جاری کیا جاتا ہے۔ آخری ای سی ایم اے - 262 کا ایڈیشن 5.1 ہے، جو 2011 ستمبر میں جاری کیا گیا تھا۔
ای سی ایم اے - 262 کا پہلا ایڈیشن نیٹ اسپرک جی اسکریپٹ 1.1 کے ساتھ اصولی طور پر ایک ساتھ ہے، لیکن سارے براؤزر سے متعلق کوڈ کو حذف کیا گیا ہے، علاوہ ازیں چند چھوٹی ترمیمات بھی کی گئی ہیں۔ ابتدا میں، ای سی ایم اے - 262 نے یونیکوڈ اسٹینڈرڈ کی حمایت کی ضرورت کا مطالبہ کیا (تا کہ کثیر زبانی حمایت کی جاسکے)。 دوسرا، یہ نے اشیاء کو پلیٹ فارم پر مبنی قرار دیا (نیٹ اسپرک جی اسکریپٹ 1.1 میں اشیاء کا مختلف پلیٹ فارم پر مبنی نفاذ موجود تھا، مثلاً ڈیٹا اشیاء، جو پلیٹ فارم پر مبنی تھی)。 یہی وجہ یہ کہ جی اسکریپٹ 1.1 اور 1.2 ای سی ایم اے - 262 کے پہلے ایڈیشن کی معیارات سے مطابقت نہیں رکھتا تھا کی وجہ تھی۔
ECMA-262 的第二版大部分更新本质上是编辑性的。这次标准的更新是为了与 ISO/IEC-16262 的严格一致,也并没有特别添加、更改和删除内容。ECMAScript 一般不会遵守第二版。
ECMA-262 第三版是该标准第一次真正的更新。它提供了对字符串处理、错误定义和数值输出的更新。同时,它还增加了正则表达式、新的控制语句、try...catch 异常处理的支持,以及一些为使标准国际化而做的小改动。一般来说,它标志着 ECMAScript 成为一种真正的编程语言。
2. 何谓 ECMAScript 符合性
在 ECMA-262 中,ECMAScript 符合性(conformance)有明确的定义。一个脚本语言必须满足以下四项基本原则:
- پوری طرح سے پورا کردہ تحقیقات کو ECMA-262 میں معیار کی تعریف کے مطابق تمام ‘نوع، مقادیر، اشیاء، خاصیت، فانکشن اور پروگرام زبان اور معانی’ کا پشتیبندی دینا چاہئیے (یعنی ECMA-262، پہلی صفحہ)
- پوری طرح سے پورا کردہ تحقیقات کو یونیکوڈ اور قاعدوں کا معیار پوری طرح سے پورا کرنا چاہئیے (یعنی یونیکوڈ سی سی)
- پوری طرح سے پورا کردہ تحقیقات کو ECMA-262 میں مخصوص نہ کیا گیا ‘اضافی نوعیت، مقادیر، اشیاء، خاصیت اور فانکشن’ کا پشتیبندی دینا چاہئیے۔ ECMA-262 یہ اضافات معیار میں نہ کیا گیا نئی اشیاء یا اشیاء کی نئی خاصیت کے طور پر بیان کی گئی ہیں
- پوری طرح سے پورا کردہ تحقیقات کو ECMA-262 میں معیار کی تعریف نہ کی گئی ‘پروگرام اور عبارت جوائنال گرمی’ کا پشتیبندی دینا چاہئیے (یعنی جوائنال جوائنال کی جگہ پر تبدیل یا توسیع کی جاسکتی ہو) اور داخلی جوائنال جوائنل کی پشتیبندی کا پشتیبندی دینا چاہئیے
تمام ECMAScript کی تحقیقات کو بالا معیار کی پوری طرح سے پورا کرنا چاہئیے۔
3. ویب براؤزر میں ECMAScript کی پشتیبندی
شامل JavaScript 1.1 کا Netscape Navigator 3.0 1996 میں شائع کیا گیا تھا۔ بعد میں، JavaScript 1.1 معیار کو ایک نئی معیار کے طور پر دعوہ کیا گیا اور یہ EMCA کو پیش کیا گیا تھا۔ JavaScript کی طاقتور مقبولیت کے ساتھ، Netscape بہت خوشی سے 1.2 ورژن کی ترقی شروع کردا تھا۔ لیکن ایک مسئلہ تھا، ECMA نے Netscape کے دعوہ کو قبول نہیں کیا تھا۔ Netscape Navigator 3.0 کی شائع کی جلد کے بعد، مائیکروسافٹ نے IE 3.0 شائع کردیا تھا جس میں JScript 1.0 (مائیکروسافٹ کی خود کی JavaScript کی تحقیق کا نام) شامل تھا جس کا مقصد تھا کہ یہ JavaScript 1.1 کے ساتھ مقابلوں کی جاسکے، لیکن، مستندات کی ناقصی اور کچھ نادرست تکرار شدگی کی وجہ سے، JScript 1.0 جس کی سطح JavaScript 1.1 سے بہت کم تھی، نہیں پہنچا تھا。
قبل از اینکه نسخه اول ECMA-262 به صورت نهایی تصویب شود، Netscape Navigator 4.0 که شامل JavaScript 1.2 بود، در سال 1997 منتشر شد. در اواخر همان سال، استاندارد ECMA-262 پذیرفته و استاندارد شد. بنابراین، JavaScript 1.2 با نسخه اول ECMAScript سازگار نیست، اگرچه ECMAScript باید بر اساس JavaScript 1.1 باشد.
مرحله بعدی JScript، JScript 3.0 در IE 4.0 بود (نسخه 2.0 با IIS 3.0 منتشر شد، اما در مرورگرها قرار نگرفت). مایکروسافت به شدت اعلام کرد که JScript 3.0 اولین زبان اسکریپت است که واقعاً با استاندارد ECMA مطابقت دارد. در آن زمان، ECMA-262 هنوز به صورت نهایی تصویب نشده بود، بنابراین JScript 3.0 نیز با سرنوشت مشابه JavaScript 1.2 روبرو شد - آن نیز نتوانست با استاندارد نهایی ECMAScript مطابقت داشته باشد.
Netscape تصمیم گرفت که نسخه JavaScript خود را در Netscape Navigator 4.06 بهروزرسانی کند. JavaScript 1.3 باعث شد که Netscape به طور کامل با نسخه اول ECMAScript مطابقت داشته باشد. Netscape از پشتیبانی از استاندارد Unicode پیروی کرد و تمامی اشیاء به ویژگیهای جدیدی که در JavaScript 1.2 معرفی شده بودند، حفظ کردند و همچنین مستقل از پلتفرم شدند.
وقتی که Netscape کد منبع خود را به عنوان پروژه Mozilla به عموم اعلام کرد، برنامهریزی میشد که JavaScript 1.4 در Netscape Navigator 5.0 جاسازی شود. اما، تصمیم پیشروانهای - که کد Netscape را از ابتدا مجدداً طراحی کند، این کار را خراب کرد. JavaScript 1.4 تنها به عنوان زبان اسکریپت سرور Netscape Enterprise Server منتشر شد و بعداً نیز در مرورگرها قرار نگرفت.
آج، تمامی مرورگرهای وب معروف از نسخه سوم ECMA-262 پیروی میکنند.
جدول زیر پشتیبانی ECMAScript در بیشتر مرورگرهای وب معروف را لیست میکند:
مرورگر | کامپٹیبلتائی DOM |
---|---|
Netscape Navigator 2.0 | - |
Netscape Navigator 3.0 | - |
Netscape Navigator 4.0 - 4.05 | - |
Netscape Navigator 4.06 - 4.79 | نسخه 1 |
Netscape 6.0+ (Mozilla 0.6.0+) | نسخه 3 |
Internet Explorer 3.0 | - |
Internet Explorer 4.0 | - |
Internet Explorer 5.0 | نسخه 1 |
Internet Explorer 5.5+ | نسخه 3 |
Opera 6.0 - 7.1 | نسخه 2 |
Opera 7.2+ | نسخه 3 |
Safari 1.0+/Konqueror ~ 2.0+ | نسخه 3 |
DOM
DOM (مدل مستند) یک رابط برنامهنویسی (API) برای HTML و XML است. DOM تمام صفحه را به یک مستند از سطح گرهها برنامهریزی میکند. هر بخشی از یک صفحه HTML یا XML یک فرزند گره است. به این صفحه HTML زیر توجه کنید:
<html> <head> <title>صفحه نمونه</title> </head> <body> <p>سلام دنیا!</p> </body> </html>
این کد میتواند با استفاده از DOM به یک نمودار سطح گرهها تبدیل شود:

DOM با ایجاد یک درخت برای نمایش مستند، توسعهدهندگان را قادر میسازد که کنترل بینظیری بر محتوای مستند و ساختار آن داشته باشند. با استفاده از API DOM، میتوان به راحتی گرهها را حذف، اضافه و جایگزین کرد.
1. چرا DOM ضروری است
از زمانی که IE 4.0 و Netscape Navigator 4.0 از HTML دینامیک (DHTML) در فرمهای مختلف پشتیبانی کردند، توسعهدهندگان برای اولین بار توانستند بدون بارگذاری مجدد صفحه، ظاهر و محتوای آن را تغییر دهند. این یک جهش بزرگ در تکنولوژی وب بود، اما همچنین مشکلات بزرگی را به همراه آورد. Netscape و مایکروسافت هر دو DHTML خود را توسعه دادند، که دورهای را که توسعهدهندگان فقط یک صفحه HTML مینوشتند و آن را در همه مرورگرها قابل دسترسی میکردند، به پایان رساند.
صنعت فیصل کرد که باید کاری انجام شود تا ویژگیهای پلیپلتفرم وب حفظ شود، آنها نگران بودند که اگر Netscape و شرکت مایکروسافت این کار را انجام دهند، وب به دو بخش مستقل تقسیم خواهد شد، هر بخش فقط برای یک مرورگر خاص مناسب است. بنابراین، گروهی که مسئول تعیین استانداردهای ارتباط وب است، W3C (World Wide Web Consortium) شروع به تدوین DOM کرد.
2. DOM کی مختلف سطح
DOM Level 1 是 W3C 于 1998 年 10 月提出的。它由两个模块组成,即 DOM Core 和 DOM HTML。前者提供了基于 XML 的文档的结构图,以便访问和操作文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。
注意,DOM 不是 JavaScript 专有的,事实上许多其他语言都实现了它。不过,Web 浏览器中的 DOM 已经用 ECMAScript 实现了,现在是 JavaScript 语言的一个很大组成部分。
DOM Level 1 只是一个目标,即规划文档的结构,DOM Level 2 的目标就广泛多了。对原始 DOM 的扩展添加了对鼠标和用户界面事件(DHTML 对此有丰富的支持)、范围、遍历(重复执行 DOM 文档的方法)的支持,并通过对象接口添加了对 CSS(层叠样式表)的支持。由 Level 1 引入的原始 DOM Core 也加入了对 XML 命名空间的支持。
DOM Level 2 引入了几种 DOM 新模块,用于处理新的接口类型:
- DOM 视图 - 描述跟踪文档的各种视图(即 CSS 样式化之前和 CSS 样式化之后的文档)
- DOM 事件 - 描述事件的接口
- DOM 样式 - 描述处理基于 CSS 样式的接口
- DOM 遍历和范围 - 描述遍历和操作文档树的接口
DOM Level 3 引入了以统一的方式载入和保持文档的方法(包含在新模块 DOM Load and Save)以及验证文档(DOM Validation)的方法,从而进一步扩展了 DOM。在 Level 3 中,DOM Core 被扩展为支持所有的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。
DOM کی تعلیم کے دوران، کسی کے ذریعہ DOM Level 0 کا حوالہ دینا ممکن ہو سکتا ہے۔ یاد رکھیں، کوئی DOM Level 0 معیار نہیں ہے، یہ صرف DOM کا ایک تاریخی مرجع نکالنا ہے (DOM Level 0 یعنی IE 4.0 اور Netscape Navigator 4.0 میں دعما شامل DHTML)۔
3. دیگر DOM
جسد کور و جسد HTML کے علاوہ، دیگر زبانوں نے اپنے DOM معیارات جاری کئے ہیں۔ یہ تمام زبانوں XML پر مبنی ہیں، ہر DOM کو اپنے متعلقہ زبان کی خصوصی طریقوں اور انٹر فیسوں میں شامل کیا گیا ہے:
- زبان ویژگیهای تصویری قابل انعطاف (SVG) 1.0
- زبان نشانهگذاری اعداد (MathML) 1.0
- زبان یکپارچه برای متنی چندرسانهای (SMIL)
توضیحات:اگر میخواهید اطلاعات بیشتری یاد بگیرید، لطفاً وبسایت CodeW3C را باز کنید سمل تعلیم 和 اسویج تعلیم。
علاوه بر این، زبانهای دیگری نیز از اجرای خود برای DOM ایجاد کردهاند، مانند زبان رابط کاربری XML Mozilla (XUL). اما تنها زبانهای بالا در استانداردهای پیشنهادی W3C قرار دارند.
پشتیبانی DOM در مرورگرهای وب
DOM قبل از اینکه توسط مرورگرهای وب شروع به اجرا شود، یک استاندارد بود. تلاش اولیه IE برای DOM در نسخه 5.0 بود، اما در واقع تا نسخه 5.5 بعد از آن از پشتیبانی واقعی DOM برخوردار شد، IE 5.5 DOM Level 1 را عملی کرد. از آن زمان به بعد، IE هیچ ویژگی جدید DOM را معرفی نکرد.
Netscape تا نسخہ Netscape 6 (Mozilla 0.6.0) از پشتیبانی DOM پیوست. در حال حاضر، Mozilla بهترین پشتیبانی DOM را دارد، که شامل Level 1 کامل، تقریباً تمامی Level 2 و بخشی از Level 3 است. (هدف تیم توسعه Mozilla این است که مرورگر 100٪ با استانداردها سازگار باشد، و کار آنها جواب داده است.)
Opera تا نسخہ 7.0 از پشتیبانی DOM پیوست، Safari نیز بیشتر DOM Level 1 را عملی کرده است. آنها تقریباً در سطح IE 5.5 قرار دارند، بعضی مواقع، حتی از IE 5.5 فراتر رفتهاند. با این حال، اگر از نظر پشتیبانی DOM بپرسیم، تمامی مرورگرها بسیار کمتر از Mozilla هستند. جدول زیر لیستی از پشتیبانی مرورگرهای معمولی از DOM را نشان میدهد.
مرورگر | کامپٹیبلتائی DOM |
---|---|
Netscape Navigator 1.0 - 4.x | - |
Netscape 6.0+ (Mozilla 0.6.0+) | درجہ 1، درجہ 2، درجہ 3 (بخشی) |
IE 2.0 - 4.x | - |
IE 5.0 | درجہ 1 (کمترین) |
IE 5.5+ | درجہ 1 (تقریباً تمامی آن) |
Opera 1.0 - 6.0 | - |
Opera 7.0+ | درجہ 1 (تقریباً تمامی آن) و درجہ 2 (بخشی) |
Safari 1.0+/Konqueror ~ 2.0+ | درجہ 1 |
توضیحات:اگر آپ میخواهید دانش بیشتری در مورد DOM یاد بگیرید، لطفاً وبسایت CodeW3C را باز کنید ایچٹی ایم ال ڈومینو تعلیم 和 ایکس ایم ال ڈومینو تعلیم。
BOM
IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 BOM 独树一帜且又常常令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。
BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:
- 弹出新的浏览器窗口
- 移动、关闭浏览器窗口以及调整窗口大小
- 提供 Web 浏览器详细信息的定位对象
- 提供用户屏幕分辨率详细信息的屏幕对象
- 对 cookie 的支持
- IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象
由于没有相关的 BOM 标准,每种浏览器都有自己的 BOM 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。
ملاحظہ:
- پچھلے ویژن جسٹسکریپٹ تاریخ
- پائیدار ویژن ایک ایمپلائی ڈی او ایم نویاتی