قبل أن تبدأ ببرمجة تطبيقات الصفحة الواحدة SPA , هناك أمور لا بد أن تدركها
السلام عليكم
من تقنيات الويب الحديثة هي تطبيقات الصفحة الواحدة Single Page Apps, كتلك التي نجدها في مواقع كـ soundcloud أو github
في هذا المقال التقني, نحاول شرح بعض الأمور الهامة قبل أن تبدأ في البرمجة بهذه التقنية. الخبرات الموجودة بالمقال نتيجة العديد من المناقشات التي طرحت على الساحات المختلفة, و أحاول هنا أن أوجزها بمقال واحد.
للولوج الى المقال
http://devdose.com/?p=591و اتمنى أن تعم الاستفادة, و باب النقاش مفتوح
السلام عليكم
التعليقات
مقال جميل ツ
لم أجرب العمل على أي من أُطر العمل لهذا الغرض بعد فلا أستطيع الحكم عليها، فيمكن العمل على نفس المبدأ من خلال ( طلبات من وإلى الخادم بتنسيق JSON مع محرك قوالب للغة javaScript مع طلبات للخادم لجلب القوالب "المكونات" )، فهل هذه الأُطر تختلف عن التطبيق بهذا المبدأ؟
تختلف هذه الأطر فى طريقة عملها .. حيث يتم عمل monitoring على ال DOM Elements بشكل دائم .. حيث إذا تغيرت فى المنبع أو قاعدة البيانات مثلاً ... تتغير تلقائياً فى ال DOM
تعمل هذه الأطر بال push وليس ال pull .. فالسيرفر هو ما يرسل لك و لست أنت من تطلب منه ....
أنا عملت عليها ذات مره و كانت النتيجة خيالية ... كان تطبيق شات .. كانت السرعة ممتازه بمعنى الكلمة .. مثل تطبيقات whatsapp وما إلى ذلك .
أنت حينما تكتب عبارة فى الشات و ترسلها فإن جدول قاعدة البيانات يدخله قيمة جديدة و هو ما يجعل السيرفر يرسلها إلي كل الأطراف المتصلة دون الحاجة لأن تقوم بعمل إسترجاع للقيمة أو render بنفسك لل template و تقوم بعمل append أو prepend
و أفضل العمل عليها فى الأمور الخاصة بذلك الغرض فقط .. لأن الجافاسكربت حينما تكبر تكون هناك عواقب وخيمه و خاصة إن أردت التطوير .
شكراً لك على هذا البيان، ولكن ما هي الآلية التي تجعل من مكتبة مبنية على javaScript تحث الخادم على إرسال أي تعديلات تطرأ عليه أو على قاعدة البيانات؟
الفكرة ليست كذلك بالضبط, بل تحتوى على مميزات كثيرة, كأن تجعل عدد من عناصر الصفحة تشعر بأي تغييرات تحدث بينها و بين البعض, و أن تجعل من صفحتك نظام MVC
بامانة اجد من الصعب شرح الفكرة في سطور, يمكنك أن تتوجه لأي شرح angularJS و هو أبسط طريق لتفهم الفكرة في وقت سريع, و بإذن الله سوف تعجبك جداً
يمكنك اعتماد هذا الدليل السهل,
أو هناك دروس له بالعربية على اليوتيوب
شكراً لك سأطلع عليها حين أحتاج العمل على أحد مشاريع SPA
كان سؤالي حول نقطة معينة:
فالسيرفر هو ما يرسل لك و لست أنت من تطلب منه ....
والأخ khashabawy أوضح أن هذه المكتبات لها جذء يعمل على الخادم لتنفيذ هذه المهمة وهذا ما كنت أسأل عنه، لأن مسميات هذه المكتبات وإقترانها بلغة javaScript يجعلك تطرح هذا التساؤل.
الألية هو أنه هذه المكتبة منها جزآن .. الأول server-side و لذلك يجب ان يكون السيرفر مجهز بهذه المكتبة و هى مكتبة javascript عادية و لكنها مجهزة لكى تتعامل فى نفس الوقت مع API قواعد البيانات و غيرها لتوفر لك بيئة عمل متكاملة على السيرفر
و الثانى Client-side الذى منه تبنى موقعك و بالتسمية المتفقة (المصطلحة) بين بين ال server و ال client يتم ربط كل جزء بالآخر
أنت تبنى ملفات ال client-side و ما يناظرها فى ال server-side بناء على ما توفره لك المكتبة من أدوات مساعدة
لدى تعيق واحد فقط و هو على can.js ... هى ليست مخصصة لل garbage أو حذف العناصر الغير مستخدمة .. هى plugin يوفر MVC لإطار عمل Jquery .. و بعض الأطر الأخرى
شكراُ على التنويه, و لربما خانني التعبير في المقال, و لكني أقصد أن الاعتماد على can.js سيدعمك بميزة التحكم في الذاكرة بشكل جيد. و يمكن للمهتمين مراجعة الصفحة
و التي تتحدث حول هذا الأمر
انا مختلف معك أخي khachabaway في عدة نقط و اخترت اخر تعليق لك لكي أرد عليه ، تطبيقات SPA يمكن انشاءها دون وجود اي اتصال بالسرفر ، في حالة كان تطبيق الة حاسبة مثلا أو تطبيق ، مفكرة ، حيث بالامكان استعمال التخزين المحلي ، وكذلك ليس من الضروري ان يكون هناك جزأن من المكتبة فال SPA باستعاطتها التواصل مع السرفر فقط باستعمال REST API و فقط PULL و ليس PUSH ، ذلك كله يعتمد على مبرمج التطبيق و الكيفية التي يريد ان يبرمج هذا التطبيق ، وليس كما حصرت دور هاته التطبيقات .
لم أحصر و لكنى أتحدث عن آخر التقنيات المستخدمه ... ما ذكرته أنت هو المعتاد و المعروف و القديم و لكن التكنولوجيا و المستقبل فى أن يكون التعامل مع السيرفر و مع push و لهذا تخرج لنا كل يوم مكتبات xxxxx.js
يمكنك مراجعة أعمالى لتعرف أننى متفق معك فأنا قد استخدمت ما تتحدث عنه فى أعمال كثيره .
شوف هذا الموقع مثلاً : notedn.com
المقال مذهل جدا، شكرا لك.
هذه أيضا مكتبة أخرى يمكن بناء تطبيقات صفحة واحدة بها
في الواقع مبدأ مكتب مناسب جدا لتطبيقات الصفحة الواحدة فهي تعمل عبر بناء عناصر components في ملفات منفصلة (html) واستدعاءها كلما دعت الحاجة، لذا ستساعد كثيرا
مقال عن الأمر
/0.5/articles/spa.html