دعونا نرى ما يميز جافا سكريبت ، وما يمكننا تحقيقه بها ، وأي التقنيات الأخرى التي تعمل بشكل جيد معها.
ماهي جافا سكريبت؟
جافا سكريبت تم إنشائها في بادئ الأمر “لجعل الصفحات الإلكترونية حية”.
البرامج في هذه اللغة تسمّي سكريبتات. يمكن كتابتها مباشرة في الصفحات الإلكترونية HTML و سوف يتم تفعيلها آليا عند تحميل الصفحة.
تتوفر السكريبتات وتنفذ كنص عادي. لا تحتاج الى تحضير خاص أو تحويل برمجي لتشتغل.
في هذا الجانب ، تختلف جافا سكريبت اختلافًا كبيرًا عن لغة أخرى تسمى جافا
عندما تم إنشاء جافا سكريبت، كانت تحمل اسما اخر “لايفسكربت”.
ولكن كان لجافا شعبية كبيره في ذلك الوقت، لذلك تقرّر أن وضع لغة جديدة كـ “الأخ الأصغر” لجافا سيساعد. ولكن مع تطورها ، أصبحت جافا سكريبت لغة مستقلة تمامًا مع مواصفاتها الخاصة التي تسمى إكماسكربت ، والآن لا علاقة لها بجافا على الإطلاق.
اليوم، يمكن تنفيذ جافا سكريبت ليس فقط في المتصفح، ولكن أيضًا على الخادم، أو فعليًا على أي جهاز به برنامج خاص يسمى محرك جافا سكريبت.
يحتوي المتصفح على محرك مثبت يسمى أحيانًا “آلة جافا سكريبت الافتراضية”.
المحركات المختلفة لها “أسماء رمزية” مختلفة. على سبيل المثال:
- في 8 – في كروم و اوبرا.
- سبايدر مونكي – في فايرفوكس.
- …هناك أسماء رمزية أخرى مثل “تشاكرا” لاصدارات مختلفه من انترنت اكسبلورر، “تشاكرا كور” لمايكروسوفت إيدج، “نيترو” و “سكيرلفيش” لسفاري، إلخ.
من الجيد تذكر المصطلحات الواردة أعلاه لأنها مستخدمة في مقالات المطورين على الإنترنت. سنستخدمهم أيضًا. على سبيل المثال ، إذا كانت “الميزة إكس مدعومة بواسطة في8” ، فمن المحتمل أنها تعمل في كروم و أوبرا.
المحركات معقدة. ولكن الأساسيات بسيطه .
١. يقرأ (“يحلّل”) المحرك (المثبت إذا كان متصفحًا) السكريبت.
٢. ثم يحول (“يترجم”) السكربت الى لغة الآلة.
٣. وبعد ذلك يتم تشغيل رموز الآلة، بسرعة كبيرة.
يطبق المحرك التحسينات في كل خطوة من العملية. حتى أنه يراقب النص المترجم أثناء تشغيله ، ويحلل البيانات التي تتدفق من خلاله ، ويزيد من تحسين رموز الآلة بناءً على تلك المعرفة.
ما الذي يمكن أن يفعله جافا سكريبت في المتصفح؟
جافا سكريبت الحديثة هي لغة برمجة “آمنة”. لا توفر وصولاً منخفض المستوى إلى الذاكرة أو وحدة المعالجة المركزية، لأنه تم إنشاؤها في البداية للمتصفحات التي لا تتطلب ذلك.
تعتمد قدرات جافا سكريبت بشكل كبير على البيئة التي تعمل بها. على سبيل المثال ، يدعم نود.جي إس الوظائف التي تسمح لجافا سكريبت بقراءة / كتابة ملفات عشوائية ، وتنفيذ طلبات الشبكة، إلخ.
يمكن لجافا سكريبت في المتصفح القيام بكل ما يتعلق بمعالجة صفحات الويب والتفاعل مع المستخدم وخادم الويب.
على سبيل المثال ، يمكن لجافا سكريبت في المتصفح:
- إضافة HTML جديد إلى الصفحة ، وتغيير المحتوى الحالي ، وتعديل التصاميم.
- الرد على تفاعلات المستخدم ، والتشغيل على نقرات الفأرة ، وحركات المؤشر ، والضغط على المفاتيح.
- إرسال الطلبات عبر الشبكة إلى الخوادم المنعزلة ،تنزيل الملفات وتحميلها (ما يسمى بـتقنيات أجاكس و كوميت.
- الحصول على ملفات تعريف الارتباط وتعيينها ، وطرح الأسئلة على الزائر ، وإظهار الرسائل.
- تذكر البيانات الموجودة على جانب العميل (“التخزين المحلي”).
ما الذي لا يمكن لجافا سكريبت في المتصفح فعله؟
إمكانيات جافا سكريبت في المتصفح محدودة من أجل سلامة المستخدم. الهدف هو منع صفحة ويب شريرة من الوصول إلى المعلومات الخاصة أو الإضرار ببيانات المستخدم.
من أمثلة هذه القيود:
-
جافا سكريبت على صفحة الويب قد لا تقرأ/تكتب ملفات عشوائية على القرص الصلب أو تنسخها أو تنفذ برامج. ليس لديها وصول مباشر إلى وظائف نظام التشغيل.
تسمح المتصفحات الحديثة له بالعمل مع الملفات ، ولكن الوصول محدود ويتم توفيره فقط إذا قام المستخدم بإجراءات معينة ، مثل “إسقاط” ملف في نافذة المتصفح أو تحديده عبر علامة
<input>
.هناك طرق للتفاعل مع الكاميرا / الميكروفون والأجهزة الأخرى ، لكنها تتطلب إذنًا صريحًا من المستخدم. لذلك قد لا تعمل الصفحة التي تم تمكين جافا سكريبت فيها بشكل خفي على تمكين كاميرا الويب ومراقبة المناطق المحيطة وإرسال المعلومات إلى آن آس أيه -بشكل عام لا تعرف علامات التبويب / النوافذ المختلفة حول بعضها البعض. في بعض الأحيان يفعلون ذلك، على سبيل المثال عندما تستخدم إحدى النوافذ جافا سكريبت لفتح النافذة الأخرى. ولكن حتى في هذه الحالة ، قد لا تتمكن جافا سكريبت في إحدى الصفحات من الوصول إلى الصفحة الأخرى إذا كانت تأتي من مواقع مختلفة (من مجال أو بروتوكول أو منفذ مختلف).
وهذا ما يسمى “سياسة المصدر الأوحد”. للتغلب على ذلك ، يجب أن توافق الصفحتان على تبادل البيانات وتحتوي على كود جافا سكريبت خاص يتعامل معه. سنغطي ذلك في البرنامج التعليمي.
هذا القيد ، مرة أخرى ، لسلامة المستخدم. يجب ألا تتمكن صفحة من http://anysite.com
فتحها المستخدم من الوصول إلى نافذة متصفح أخرى بعنوان http://gmail.com
وسرقة المعلومات من هناك.
- يمكن لـ جافا سكريبت الاتصال بسهولة عبر الشبكة بالخادم الذي جاءت منه الصفحة الحالية. لكن قدرته على تلقي البيانات من المواقع / المجالات الأخرى معطلة. على الرغم من إمكانية ذلك، إلا أنه يتطلب موافقة صريحة (معبرًا عنها في رؤوس HTTP) عن بعد. مرة أخرى ، هذا قيد أمان.
لا توجد مثل هذه الحدود إذا تم استخدام جافا سكريبت خارج المتصفح ، على سبيل المثال على الخادم. تسمح المتصفحات الحديثة أيضًا الإضافات التي قد تطلب تصريحات ممتدة.
ما الذي يجعل جافا سكريبت فريدًا؟
هناك على الأقل ثلاثة أشياء رائعة حول جافا سكريبت:
- تكامل تام مع HTML / CSS.
- الأشياء البسيطة تتم ببساطة.
- مدعوم من قبل جميع المتصفحات الرائدة وتمكينه تلقائيا.
جافا سكريبت هي تقنية المتصفح الوحيدة التي تجمع بين هذه الأشياء الثلاثة.
هذا ما يجعل جافا سكريبت فريدًا. هذا هو السبب في أنها الأداة الأكثر انتشارًا لإنشاء واجهات المتصفح.
ومع ذلك، تسمح جافا سكريبت أيضًا بإنشاء خوادم وتطبيقات الجوال، إلخ.
لغات “فوق” جافا سكريبت
لا تتناسب القواعد اللغوية لجافا سكريبت مع احتياجات الجميع. الناس المختلفون يريدون ميزات مختلفة.
هذا أمر متوقع ، لأن المشاريع والمتطلبات تختلف من شخص لآخر.
ظهرت في الآونة الأخيرة عدد كبير من اللغات الجديدة ، والتي تم تحويلها إلى جافا سكريبت قبل تشغيلها في المتصفح.
الأدوات الحديثة تجعل الترجمة سريعة وشفافة للغاية ، مما يسمح للمطورين في الواقع بالتشفير بلغة أخرى وتحويلها تلقائيًا “خلف الكواليس”.
أمثلة على هذه اللغات:
- كوفي سكريبت هو “سكر نحوي” لجافا سكريبت. إنه يقدم بناء جمل أقصر ، مما يسمح لنا بكتابة كود أكثر وضوحًا ودقة. عادة ،مطورو روبي يحبونها.
- تايب سكريبت يركز على إضافة “كتابة بيانات صارمة” لتبسيط تطوير ودعم الأنظمة المعقدة. تم تطويره بواسطة ميكروسوفت.
- فلو يضيف أيضًا كتابة البيانات ، ولكن بطريقة مختلفة. تم تطويره بواسطة فايسبوك.
- دارت هي لغة قائمة بذاتها لها محركها الخاص الذي يعمل في بيئات غير المتصفح (مثل تطبيقات الهاتف المحمول) ، ولكن يمكن أيضًا تحويلها إلى جافا سكريبت. من تطوير جوجل.
- بريثون هو محول من بايثون إلى جافا سكريبت و الذي يمكّن من كتابة التطبيقات بلغة بايثون بشكل كامل بدون جافا سكريبت.
- كوتلن هي لغة برمجة حديثة وموجزة وآمنة يمكنها استهداف المتصفح أو نود.
هناك أكثر. بالطبع ، حتى لو استخدمنا إحدى اللغات المترجمة ، يجب أن نعرف أيضًا جافا سكريبت لفهم ما نقوم به حقًا.
ملخص
- تم إنشاء جافا سكريبت في البداية كلغة للمتصفح فقط ، ولكنها تُستخدم الآن في العديد من البيئات الأخرى أيضًا.
- تتمتع جافا سكريبت اليوم بمكانة فريدة باعتبارها لغة المتصفح الأكثر استخدامًا مع تكاملها التام مع HTML / CSS.
- هناك العديد من اللغات التي يتم “تحويلها” إلى جافا سكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان جافا سكريبت.
التعليقات
<code>
، وللكثير من السطور استخدم<pre>
، ولأكثر من 10 سطور استخدم (plnkr, JSBin, codepen…)