دوجو (إطار عمل الويب)
دوجو (كانت تُكتب سابقًا Dojo Toolkit أو dōjō toolkit قبل الإصدار 2.0) هي مكتبة جافا سكريبت معيارية مفتوحة المصدر (أو تحديدًا مجموعة أدوات أو إطار عمل لواجهة المستخدم) مصممة لتسهيل التطوير السريع لتطبيقات ومواقع ويب متعددة المنصات تعتمد على جافا سكريبت / أجاكس . بدأ تطويرها أليكس راسل، وديلان شييمان، وديفيد شونتزلر، وآخرون في عام 2004 [ 4 ] ، وهي مرخصة بترخيص مزدوج بموجب ترخيص BSD المعدل أو الترخيص الأكاديمي الحر (≥ 2.1) [ 6 ] .
كانت مؤسسة دوجو منظمة غير ربحية أُنشئت بهدف تشجيع استخدام مجموعة الأدوات. في عام 2016، اندمجت المؤسسة مع مؤسسة جيه كويري لتُصبح مؤسسة جيه إس [ 7 ] [ 8 ] [ 9 ] ، والتي اندمجت بدورها في عام 2019 مع مؤسسة نود.جي إس لتشكيل مؤسسة أوبن جيه إس [ 10 ].
ملخص
دوجو هو إطار عمل جافا سكريبت يلبي الاحتياجات المتعددة لتطوير مواقع الويب واسعة النطاق من جانب العميل. على سبيل المثال، يُجرّد دوجو الاختلافات بين المتصفحات المختلفة لتوفير واجهات برمجة تطبيقات تعمل على جميعها (بل ويمكن تشغيله على الخادم باستخدام Node.js )؛ كما يُؤسس إطار عمل لتحديد وحدات التعليمات البرمجية وإدارة تبعياتها المتبادلة؛ ويوفر أدوات بناء لتحسين جافا سكريبت و CSS ، وإنشاء الوثائق، واختبار الوحدات؛ ويدعم التدويل والترجمة وإمكانية الوصول ؛ ويوفر مجموعة غنية من فئات الأدوات المساعدة وعناصر واجهة المستخدم الشائعة الاستخدام.
Dojo مفتوح المصدر بالكامل . تتضمن مجموعة الأدوات حوالي ثلاثة آلاف وحدة JavaScript، بالإضافة إلى الصور والموارد الأخرى.
تتكون مجموعة أدوات الدوجو من عدة أجزاء:
- يحتوي برنامج dojo على الوحدات الأساسية ومعظم الوحدات غير المرئية.
- ديجيت هي مكتبة لوحدات واجهة المستخدم الخاصة بالأدوات والتخطيط.
- يحتوي dojox على وحدات متنوعة لم تعتبر مستقرة بما يكفي لإدراجها في dojo أو dijit .
- تتضمن الأدوات المساعدة أدوات بناء مثل التحسين والتوثيق والتحقق من الأسلوب والاختبار.
سمات
الأدوات
عناصر واجهة المستخدم Dojo هي مكونات - تتألف من كود JavaScript ، وعلامات HTML ، وتصريحات أنماط CSS - توفر ميزات تفاعلية متعددة المتصفحات (لا ينبغي الخلط بينها وبين التوافق مع المتصفحات المختلفة ):
- القوائم ، وعلامات التبويب ، وتلميحات الأدوات
- الجداول القابلة للفرز
- الرسوم البيانية الديناميكية
- رسومات متجهة ثنائية الأبعاد
- مؤثرات متحركة - تلاشي، مسح، وانزلاق - تسهيلات لمؤثرات الرسوم المتحركة المخصصة
التواصل غير المتزامن
إحدى الميزات المهمة لتطبيقات Ajax هي التواصل غير المتزامن بين المتصفح والخادم: حيث يتم تبادل المعلومات وتحديث عرض الصفحة دون الحاجة إلى إعادة تحميلها بالكامل. تقليديًا، يتم ذلك باستخدام كائن JavaScript المسمى XMLHttpRequest . يوفر Dojo غلافًا مجردًا ( dojo.xhr) حول تطبيقات XMLHttpRequest في مختلف متصفحات الويب، dojo.ioكما يدعم وسائل نقل أخرى (مثل الإطارات المضمنة المخفية ) ومجموعة متنوعة من تنسيقات البيانات. باستخدام هذا الأسلوب، يسهل إرسال البيانات التي يُدخلها المستخدم في نموذج إلى الخادم "خلف الكواليس"؛ ثم يستطيع الخادم الرد ببعض أكواد JavaScript التي تُحدّث عرض الصفحة. [ 11 ]
نظام التغليف
يُوفر Dojo نظام تغليف يُسهّل التطوير المعياري للوظائف في الحزم الفردية والحزم الفرعية؛ حيث يقوم برنامج Dojo الأساسي " bootstrap " بتهيئة مجموعة من مساحات أسماء الحزم الهرمية - "io" و"event" وما إلى ذلك - ضمن مساحة اسم "dojo" الجذرية . بعد تهيئة مساحة الاسم الجذرية، يُمكن تحميل أي حزمة Dojo (عبر XMLHttpRequest أو أي وسيلة نقل مماثلة) باستخدام دوال مساعدة مُتاحة في برنامج bootstrap. كما يُمكن تهيئة مساحات أسماء إضافية داخل مساحة اسم "dojo" أو بالتوازي معها، مما يسمح بتوسيع Dojo أو تطوير مساحات أسماء خاصة تُدار بواسطة Dojo لمكتبات وتطبيقات خارجية.
يمكن أن تتكون حزم Dojo من عدة ملفات، ويمكن تحديد الملفات التي تشكل الحزمة بأكملها. كما يمكن لأي حزمة أو ملف تحديد تبعية على حزم أو ملفات أخرى؛ فعند تحميل الحزمة، سيتم تحميل أي تبعيات تحددها أيضًا.
يتم توفير حلول بديلة لتحميل معظم حزم Dojo عبر النطاقات (على الرغم من أن هذا يتطلب إصدارًا متخصصًا من Dojo).
يوفر Dojo أيضًا آلية لإنشاء "ملفات تعريف"؛ حيث يأخذ نظام البناء قائمة بالحزم كمدخل، ويستخدم Rhino لإنشاء ملف JavaScript مضغوط واحد يحتوي على تلك الحزم وجميع تبعياتها. يتيح ذلك تحميل جميع التعليمات البرمجية اللازمة وتهيئتها دفعة واحدة، كما يسمح بتخزينها مؤقتًا (معظم متصفحات الويب لا تخزن الملفات المحملة عبر XMLHttpRequest مؤقتًا). تتوفر ملفات تعريف مُعدة مسبقًا لبعض حالات الاستخدام الشائعة للتنزيل من نفس موقع مجموعة الأدوات الكاملة.
تخزين البيانات من جانب العميل
يحتوي Dojo على وظائف دعم لقراءة وكتابة ملفات تعريف الارتباط . كما أنه كان يدعم سابقًا تجريدًا للتخزين المحلي من جانب العميل يسمى Dojo Storage.
تتيح خدمة Dojo Storage لتطبيقات الويب تخزين البيانات على جانب العميل، بشكل دائم وآمن، وبموافقة المستخدم. عند تضمينها في صفحة ويب، تحدد Dojo Storage أفضل طريقة لتخزين المعلومات بشكل دائم. وهي تعمل على جميع متصفحات الويب الحالية، بما في ذلك Internet Explorer و Firefox و Safari . يستخدم Firefox 2 خاصية التخزين الدائمة الأصلية للمتصفح؛ أما في المتصفحات الأخرى، فتستخدم تطبيق Flash مصغرًا مخفيًا . مع تثبيت Flash 6 والإصدارات الأحدث على حوالي 95% من أجهزة الكمبيوتر المتصلة بالإنترنت، [ 12 ] أصبح الوصول إلى آلية التخزين متاحًا لشريحة واسعة من مستخدمي الإنترنت. بالنسبة لتطبيقات الويب التي يتم تحميلها من نظام الملفات، أي من file://عنوان URL، تستخدم Dojo Storage بشكل شفاف XPCOM على Firefox و ActiveX على Internet Explorer لتخزين المعلومات. يتم تجريد المبرمج الذي يستخدم Dojo Storage من آلية التخزين المستخدمة، ويتم تزويده بنموذج جدول تجزئة بسيط ، مع دوال مثل put() وget(). لا تدعم الإصدارات الأحدث من 1.3 خدمة Dojo Storage.
تخزين البيانات من جانب الخادم
اعتبارًا من يناير 2007 ،يتضمن Dojo الأمثلة التالية لتطبيقات مخزن البيانات من جانب الخادم في مساحة اسم dojo.data : [ 13 ]
- CsvStore : مخزن للقراءة فقط يقرأ البيانات الجدولية من ملفات القيم المفصولة بفواصل
- OpmlStore : مخزن للقراءة فقط يقرأ البيانات الهرمية من ملفات بتنسيق OPML
- متجر ياهو : متجر للقراءة فقط يقوم بجلب نتائج البحث من خدمة بحث ياهو!
- متجر ديليشس : متجر للقراءة فقط يقوم بجلب الإشارات المرجعية من خدمة الويب del.icio.us
- RdfStore : مخزن للقراءة والكتابة يستخدم SPARQL للتواصل مع خوادم بيانات RDF بما في ذلك، على سبيل المثال، خادم تطبيق Rhizome RDF.
دعم وقت التشغيل المتكامل من Adobe (AIR)
يمكن استخدام Dojo في تطبيقات Adobe AIR القائمة على JavaScript . وقد تم تعديله ليتوافق مع متطلبات الأمان الخاصة بـ AIR.
قامت شركة SitePen، وهي شركة استشارية متخصصة في Dojo، بتطوير تطبيق Adobe AIR يُسمى "Dojo Toolbox" باستخدام Dojo. يتضمن التطبيق عارض واجهة برمجة التطبيقات (API) وواجهة رسومية لنظام بناء Dojo. عادةً ما يتم تشغيل نظام البناء من داخل Rhino، ولكن في هذا التطبيق، يمكن تشغيل نظام البناء من AIR مباشرةً، دون الحاجة إلى Java . [ 14 ]
الانتقادات
تحميل
كانت الإصدارات السابقة من Dojo معروفة بحجمها الكبير وبطء تحميلها. [ 15 ] كما تطلّب تحميل Dojo عبر النطاقات، مثلاً من شبكة توصيل المحتوى (CDN) ، جهدًا إضافيًا . وكان الهدف الرئيسي من Dojo 1.7 هو معالجة هذه المشاكل، حيث قدّم تعريف الوحدات غير المتزامن (AMD) ومُحمّل "نانو". [ 16 ]
الوثائق
لطالما وُجهت انتقادات لبرنامج دوجو بسبب وثائقه غير المكتملة والمتفرقة والقديمة. وإدراكًا لذلك، أجرى المطورون تحسينات كبيرة على الوثائق في الإصدار 1.8، شملت دروسًا تعليمية جديدة، ومتصفحًا لواجهة برمجة التطبيقات، واستكمال النواقص، وتحديث معظم الأمثلة لتتوافق مع أسلوب AMD . [ 17 ] [ 18 ]
كُتبت عدة كتب عن برنامج دوجو، لكنها جميعًا تستند إلى الإصدار 1.3 أو ما قبله، وهو إصدار قديم جدًا. ولأن هذه الكتب صدرت قبل دعم AMD وإعادة تنظيمها، فإن الأمثلة الواردة فيها تعتمد في الغالب على أساليب لم تعد مُوصى بها ولم تعد من أفضل الممارسات. ينتظر معظم المؤلفين إصدار دوجو 2.0 قبل نشر أي شيء جديد. [ 19 ]
منحنى التعلم
وقد علّق الكثيرون على أن Dojo يبدو صعب التعلم والبدء به، خاصة بالمقارنة مع jQuery الأكثر شيوعًا . [ 20 ] [ 21 ]
يقر ديلان شييمان، أحد مؤسسي دوجو، بهذا كنتيجة لاختلاف نطاقاتهم: "من المؤكد أنه من الأسهل تعلم شيء أصغر من شيء يقوم بالمزيد، لكن مستخدمينا المتحمسين يسارعون إلى الإشارة إلى أن القليل من التعلم المسبق يوفر عليهم ساعات لا حصر لها من الأشياء التي يسهلها دوجو." [ 15 ]
استقرار واجهة برمجة التطبيقات
واجه المستخدمون الأوائل صعوبة في الانتقال إلى الإصدار 2.0 بعد إعادة كتابة مجموعة الأدوات بالكامل. [ 18 ] وكان الانتقال إلى معالجات AMD في الإصدارات الأخيرة إشكاليًا بالمثل. [ 21 ] بذلت Dojo جهودًا كبيرة للحفاظ على التوافق مع الإصدارات السابقة على الرغم من تطورها السريع، حيث تم إيقاف جزء كبير من واجهة برمجة التطبيقات الحالية ولكنها لا تزال مدعومة، إلا أن المستخدمين غالبًا ما وجدوا أن التحديثات لم تكن سلسة كما كان مأمولًا.
أدى إصدار Dojo 2.0 إلى إزالة الكثير من واجهة برمجة التطبيقات المهملة والتحول من JavaScript إلى TypeScript.
انظر أيضاً
مراجع
- ↑ فوربس، برايان (21 أبريل 2015). "تم إنشاء بنية الحزمة الأساسية وإضافة وحدة اللغة" . dojo/framework@762aac4 – عبر GitHub .
- ↑ لاوتزنهايزر، دانيال (4 مارس 2022). "الإصدار v8.0.0" . dojo/framework . تم الاسترجاع في 29 مارس 2026 – عبر GitHub .
- ↑ غوبلر، أنتوني (27 يوليو 2021). "الإصدار v8.0.0-rc.1" . dojo/framework . تم الاسترجاع في 29 مارس 2026 – عبر GitHub .
- 1 2 "نبذة تاريخية عن الدوجو - مجموعة أدوات الدوجو - دليل مرجعي" . dojotoolkit.org . تم الاطلاع عليه في 16 يناير 2024 .
- ↑ شييمان، ديلان (13 أغسطس 2022). "الإصدار 1.17.3" . dojo/framework . تم الاطلاع عليه في 29 مارس 2026 – عبر GitHub .
- 1 2 "رخصة مجموعة أدوات دوجو" . مجموعة أدوات دوجو . مؤرشفة من الأصل في 31 مارس 2017. تم الاطلاع عليها في 17 أبريل 2017 .
- ↑ "دمج مؤسستي jQuery و Dojo" . مدونة jQuery الرسمية . 1 سبتمبر 2015. تاريخ الاطلاع: 2 يوليو 2018 .
- ↑ "مؤسسة jQuery ومؤسسة Dojo تندمجان" . PRWeb . 1 يوليو 2015. تم الاطلاع عليه بتاريخ 2 يوليو 2018 .
- ↑ "الإعلان عن مؤسسة جافا سكريبت!" . موقع SitePen . ١٧ أكتوبر ٢٠١٦. تم الاطلاع عليه في ٢ يوليو ٢٠١٨ .
- ↑ سينغ، مانيش (12 مارس 2019). "مؤسستا Node.js وJS تندمجان لتشكيل OpenJS" . فينشر بيت . مؤرشف من الأصل في 11 فبراير 2021. تم الاطلاع عليه في 21 مارس 2019 .
- ↑ أواتي، راهول (25 يناير 2022). "ما هي تقنية جافا سكريبت وXML غير المتزامنة (AJAX)؟" . تعريف. TheServerSide.com . Informa TechTarget . تاريخ الاسترجاع: 30 مارس 2026 .
- ↑ "اختراق إصدار Adobe Flash Player" . موقع Adobe الإلكتروني . مؤرشف من الأصل في 2 فبراير 2007.
- ↑ سكينر (11 يناير 2007). "بيانات الدوجو" . ويكي. دليل الدوجو . مؤرشف من الأصل في 13 فبراير 2007.
- ↑ دانغور، كيفن (9 سبتمبر 2008). "داخل صندوق أدوات الدوجو" . مدونة. موقع SitePen . مؤرشف من الأصل في 11 سبتمبر 2008.
- 1 2 شييمان، ديلان (16 أغسطس 2012). "مقابلة مع ديلان شييمان، مبتكر دوجو تولكيت" . مقالات\مقابلات. نيتوتس+ (مقابلة). أجراها والش، ديفيد. إنفاتو. مؤرشفة من الأصل في 27 نوفمبر 2012.
- ↑ شييمان، ديلان (1 ديسمبر 2011). "إصدار Dojo 1.7!" . مدونة. مجموعة أدوات Dojo . تم الاسترجاع في 29 مارس 2026 .
- ↑ سنوفر، كولين (9 فبراير 2012). "ما الجديد في دوجو 1.8" . مدونة. دوجو تولكيت . تم الاطلاع عليه بتاريخ 29 مارس 2026 .
- 1 2 شييمان، ديلان (11 أكتوبر 2012). "ما هو الهدف من دوجو 2.0؟" . قائمة بريدية لمساهمي دوجو . مؤرشفة من الأصل بتاريخ 6 ديسمبر 2021.
- ↑ شييمان، ديلان (30 أبريل 2012). "jQuery وجدوى Dojo على المدى الطويل" . Dojo-interest (قائمة بريدية). مؤرشف من الأصل في 5 يوليو 2022.
- ↑ كيلي، كيتسون ب. (17 أغسطس 2012). "نقد الدوجو؟" . صبار بطول سبعة أقدام . مؤرشف من الأصل في 26 أكتوبر 2012.
- 1 2 "دوجو أو مسج" . NotADojoGuru . 6 أبريل 2012 . تم الاسترجاع بتاريخ 29-03-2026 .
للمزيد من القراءة
- أوركارد، ليزلي م. (24 نوفمبر 2008). دليل موجز للدوجو ( الطبعة الأولى). دار نشر وروكس . ص 264. ISBN 978-0-470-45202-8.
- راسل، ماثيو أ. (24 يونيو 2008). الدوجو: الدليل الشامل ( الطبعة الأولى). دار نشر أورايلي ميديا . ص 500. ISBN 978-0-596-51648-2.
- ريكي، كريغ؛ جيل، راولد؛ راسل، أليكس (18 يونيو 2008). إتقان دوجو: أدوات جافا سكريبت وأجاكس لتجارب ويب رائعة ( الطبعة الأولى). براغماتيك بوكشيلف . ص 568. ISBN 978-1-934356-11-1.
- هولزنر، ستيفن (14 ديسمبر 2008). مجموعة أدوات الدوجو: دليل البدء السريع المرئي ( الطبعة الأولى). دار بيتشبيت للنشر . ص 208. ISBN 978-0-321-60512-2.
- زاميتي ، فرانك (19 سبتمبر 2008). مشاريع دوجو العملية (الطبعة الأولى ). أبريس . ص. 500. ردمك 978-1-4302-1066-5.
- هايز، كايل (17 نوفمبر 2009). البدء باستخدام مجموعة أدوات جافا سكريبت دوجو ( الطبعة الأولى). أصدقاء التعليم . ص 350. ISBN 978-1-4302-2521-8أُرشف من الأصل في 22 أبريل 2010. تم الاطلاع عليه في 15 أغسطس 2009 .
- سفينسون ، بيتر (24 نوفمبر 2008). تعلم دوجو ( الطبعة الأولى). نشر الحزمة . ص. 264. ردمك 978-1-84719-268-4.
- هارمون، جيمس إي. (21 يونيو 2008). دوجو: استخدام مكتبة دوجو جافا سكريبت لبناء تطبيقات أجاكس ( الطبعة الأولى). أديسون-ويسلي بروفيشنال . ص 336. ISBN 978-0-13-235804-0.
- أوركارد، ليزلي م.؛ بهليفانيان، آرا؛ كون، سكوت؛ جونز، هارلي (31 أغسطس 2009). أطر عمل جافا سكريبت الاحترافية: بروتوتايب، وYUI، وExtJS، وDojo، وMooTools ( الطبعة الأولى). دار نشر Wrox . ص 888. ISBN 978-0-470-38459-6أُرشف من الأصل في 6 يوليو 2011. تم الاطلاع عليه في 15 أغسطس 2009 .
روابط خارجية
- مكتبات جافا سكريبت
- أجاكس (برمجة)
- محررات HTML القائمة على جافا سكريبت
- برنامج يستخدم رخصة أكاديمية مجانية
- البرامج التي تستخدم ترخيص BSD
- أطر عمل الويب باستخدام جافا سكريبت
- أطر عمل تطبيقات الويب الغنية
- مشاريع مؤسسة لينكس
