ما هي ملفات جافا سكريبت الخارجية

اقرأ في هذا المقال


تعد ملفات (JavaScript) الخارجية طريقة رائعة لزيادة الكفاءة وتحسين إمكانية الصيانة عبر موقع الويب، حيث يمكنك وضع جميع البرامج النصية الخاصة بك في ملف خارجي بامتداد (js.)، ثم ربط هذا الملف من داخل مستند (HTML) الخاص بك، هذا مفيد إذا كنت بحاجة إلى استخدام نفس البرامج النصية عبر صفحات (HTML) متعددة، أو موقع ويب بأكمله.

ما هي محتويات ملف جافا سكريبت الخارجي

يجب ألا يكون الرمز الموجود في ملف (js.) مختلفًا عن الكود الذي عادةً ما تضعه بين علامات البرنامج النصي، لكن تذكر أنك لست بحاجة إلى إضافة علامة <script> مرة أخرى، فهي موجودة بالفعل على صفحة (HTML) لاستدعاء الملف الخارجي.

أين يتم وضع ملفات جافا سكريبت الخارجية

يتم وضع ملفات (JavaScript) الخارجية بشكل شائع ضمن علامات <head> الخاصة بالمستند، ومع ذلك، هذه ليست ضرورة، حيث يمكنك وضع عنصر <script> في أي مكان في المستند، ولأسباب تتعلق بالأداء، غالبًا ما يتم وضع (JavaScript) في أسفل المستند، قبل علامة إغلاق <body> مباشرةً.

حيث يتيح ذلك تحميل بقية الصفحة أولاً، قبل إجراء استدعاء للملف الخارجي، ومع ذلك، لا يمكن وضع جميع (JavaScript) في الجزء السفلي من المستند، حيث أنه إذا احتاج برنامج نصي آخر على الصفحة إلى قطعة معينة من (JavaScript) في وقت التحميل، فستحتاج إلى وضع (JavaScript) الخارجي قبل البرنامج النصي الذي يحتاجه.

لماذا لا يجب عليك استخدام ملفات جافا سكريبت الخارجية

قد يكون استخدام ملفات (JavaScript) الخارجية ضارًا لك ولزوار موقعك، حيث تستخدم العديد من مواقع الويب ملفات جافا سكريبت الموجودة في مجال آخر، ويحدث هذا عادةً عندما نقوم بنسخ ولصق رمز جاهز للاستخدام لبرنامج نصي (مسج، شريط تمرير، وغيرها) وجدناه على الإنترنت، كما يمكن أن تؤدي هذه الممارسة إلى العديد من المشكلات وخاصةً إلى مشكلات أمنية خطيرة لكل من مسؤول الموقع وزواره، فيما يلي المشاكل التي يمكن أن تنشأ عن استخدام ملفات (js) الخارجية:

1. تقليل السرعة

يستغرق متصفح الويب وقتًا أطول في تحميل الملفات من المواقع الخارجية حيث يستفسر عن المواقع مما يجعل تحميل الصفحة أبطأ، وتتكون صفحة الويب من العديد من الملفات (الصور ومقاطع الفيديو وJavaScript)، ولكل ملف يقوم المتصفح بتقديم طلب إلى خادم الويب لتحميله.

إذا كنت تهتم بالنتيجة النهائية لمتصفح الويب الخاص بك (مثل Firefox) عند زيارتك لصفحة ما، فإنها تعرض لك الملفات التي تقوم بتحميلها، حيث يتم تحميل الملفات المحلية بشكل أسرع من الملفات الخارجية، هذا صالح لأي نوع من أنواع الملفات والصور و(JavaScript) و(css) وما إلى ذلك.

2. فقدان الملفات

يمكن لمالك (example.com) حذف أو إعادة تسمية أو نقل ملف (JavaScript) الذي لديك رابط إليه في أي وقت، حيث أنه قد يتم إغلاق (example.com) بالكامل كموقع، وسيتوقف شريط التمرير عن العمل وستجد صعوبة في فهم سبب حدوث ذلك، في حالة إغلاق المجال الآخر، ستواجه مشكلة إضافية في العثور على ملف (js) الذي يحتاجه شريط التمرير الخاص بك للعمل.

3. قضايا أمنية

الآن، أخطر المشاكل أنه يمكن لمالك (example.com) تغيير محتويات ملف (js) في أي وقت أو إضافة شيء إضافي في الملف غير ذي صلة بوظيفة شريط التمرير، ويمكن أن يحدث الشيء نفسه من قبل شخص ثالث إذا تم اختراق (example.com)، ولا يرغب المتسللون في أن يتم ملاحظتهم، وعلى الأرجح سيتركون رمز شريط التمرير كما هو، في ترتيب أشرطة التمرير على المواقع التي يستخدمونها لمواصلة العمل، وإضافة تعليمات برمجية ضارة في نهاية الملف.

من الصعب للغاية ملاحظة مثل هذا التغيير، حيث يمكنهم بسهولة سرقة ملفات تعريف الارتباط الخاصة بك والتي قد تحتوي على معلومات حول حالة تسجيل الدخول الخاصة بك، يمكنهم حتى إضافة حدث (onclick) في نموذج تسجيل الدخول، لذلك عندما تضغط على زر الإرسال، يتم إرسال اسم المستخدم وكلمة المرور الخاصين ببيانات اعتماد تسجيل الدخول عبر (ajax) إلى بريد إلكتروني أو يتم تسجيلهما في ملف، لاحظ أن المخترق لا يحتاج إلى الوصول إلى أي ملف على موقع الويب الخاص بك للقيام بذلك، يمكنه فعل كل شيء بدءًا من ملف (js) الذي يستضيفه على موقعه.

4. المجال الآخر غير متوفر

إذا كان المجال الذي يوجد فيه الملف (example.com) معطلاً، أو لسبب ما غير متاح (على سبيل المثال بسبب مشكلات التوجيه لمزود الإنترنت)، فلن يعمل البرنامج النصي الخاص بنا لأنه لن يتم تحميل ملف (js) الخارجي، حتى لو كان موقعنا على ما يرام وكان البرنامج النصي على الإنترنت لن يعمل وسيتعطل شريط التمرير لمجرد تعطل موقع آخر غير ذي صلة، هذا صالح لـ (google و microsoft) وأي موقع آخر تعتقد أنه سيكون على الإنترنت إلى الأبد.

المصدر: JavaScript: The Good Parts,Douglas Crockford, 2008 edition .JavaScript: The Definitive Guide,David Flanagan, 2011 edition .PROFESSIONAL JAVASCRIPT: FOR WEB DEVELOPERS,Nicholas C. Zakas,2012 edition.A Smarter Way to Learn JavaScript / Author: Mark Myers


شارك المقالة: