صفحة ويب ديناميكية

صفحة ويب ديناميكية: مثال على البرمجة النصية من جانب الخادم ( PHP و MySQL ).

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

صفحة الويب الديناميكية من جانب الخادم هي صفحة ويب يتم التحكم في بنائها بواسطة خادم تطبيقات يقوم بمعالجة نصوص برمجية من جانب الخادم. [ 1 ] في البرمجة النصية من جانب الخادم ، تحدد المعلمات كيفية تجميع كل صفحة ويب جديدة ، بما في ذلك إعداد المزيد من المعالجة من جانب العميل.

تُعالج صفحة الويب الديناميكية من جانب العميل الصفحة باستخدام جافا سكريبت التي تعمل في المتصفح أثناء تحميلها. يمكن لجافا سكريبت التفاعل مع الصفحة عبر نموذج كائن المستند (DOM) للاستعلام عن حالة الصفحة وتعديلها. على الرغم من إمكانية أن تكون صفحة الويب ديناميكية من جانب العميل، إلا أنه لا يزال من الممكن استضافتها على خدمة استضافة ثابتة مثل GitHub Pages أو Amazon S3 طالما لا يوجد أي كود برمجي مُضمّن من جانب الخادم.

يُعاد تحميل صفحة الويب الديناميكية من قِبل المستخدم أو برنامج حاسوبي لتغيير بعض محتوياتها المتغيرة. قد تأتي معلومات التحديث من الخادم، أو من تغييرات أُجريت على نموذج كائن المستند (DOM) الخاص بتلك الصفحة. قد يؤدي هذا إلى اقتطاع سجل التصفح أو إنشاء نسخة محفوظة للرجوع إليها، أو قد لا يؤدي إلى ذلك. لكن تحديث صفحة الويب الديناميكية باستخدام تقنيات AJAX لا يُنشئ صفحة للرجوع إليها، ولا يقتطع سجل تصفح الويب للصفحة المعروضة. باستخدام AJAX، يحصل المستخدم النهائي على صفحة ديناميكية واحدة تُدار كصفحة واحدة في متصفح الويب ، بينما يمكن أن يختلف محتوى الويب الفعلي المعروض على تلك الصفحة. يعمل محرك AJAX فقط على المتصفح، حيث يطلب أجزاءً من نموذج كائن المستند (DOM) الخاص به، أي نموذج كائن المستند ( DOM ) الخاص بالعميل، من خادم التطبيقات. يمكن لخادم تطبيقات معين أن يُقدم واجهة REST قياسية لتقديم الخدمات لتطبيق الويب. [ 2 ]

يُعدّ DHTML مصطلحًا جامعًا للتقنيات والأساليب المستخدمة لإنشاء صفحات ويب ديناميكية ، على الرغم من تراجع استخدامه منذ انتشار تقنية AJAX، التي باتت بدورها نادرة الاستخدام. وتُساهم البرمجة النصية من جانب العميل، أو البرمجة النصية من جانب الخادم، أو مزيج منهما، في توفير تجربة ويب ديناميكية في المتصفح.

المفاهيم الأساسية

يوفر التنقل الكلاسيكي للنصوص التشعبية ، باستخدام HTML أو XHTML فقط، محتوى "ثابتًا"، مما يعني أن المستخدم يطلب صفحة ويب ويعرض الصفحة والمعلومات الموجودة على تلك الصفحة فقط.

مع ذلك، يمكن لصفحة الويب أن توفر تجربة مستخدم "مباشرة" أو "ديناميكية" أو "تفاعلية". ويمكن أن يتغير المحتوى (النصوص، الصور، حقول النماذج، إلخ) على صفحة الويب ، استجابةً لسياقات أو ظروف مختلفة.

هناك طريقتان لخلق هذا النوع من التأثير:

يجب أن تستخدم صفحات الويب التي تعتمد على البرمجة النصية من جانب العميل تقنية عرض تُعرف عمومًا باسم صفحات ذات واجهة غنية . تُستخدم لغات البرمجة النصية من جانب العميل ، مثل جافا سكريبت وأكشن سكريبت ، المستخدمة لتقنيات HTML الديناميكي (DHTML) وفلاش على التوالي، بشكل متكرر لتنسيق أنواع الوسائط (الصوت، والرسوم المتحركة، والنصوص المتغيرة، وما إلى ذلك) في العرض. كما تتيح البرمجة النصية استخدام البرمجة النصية عن بُعد ، وهي تقنية تطلب من خلالها صفحة DHTML معلومات إضافية من خادم، باستخدام إطار مخفي ، أو طلبات XMLHttpRequests ، أو خدمة ويب . من الممكن أيضًا استخدام إطار عمل ويب لإنشاء واجهة برمجة تطبيقات ويب (API) ، والتي يستخدمها العميل، عبر جافا سكريبت، للحصول على البيانات وتغيير مظهرها أو سلوكها ديناميكيًا بناءً على البيانات.

غالبًا ما تُنشأ صفحات الويب التي تستخدم البرمجة النصية من جانب الخادم باستخدام لغات برمجة من جانب الخادم مثل PHP و Perl و ASP و JSP و ColdFusion وغيرها. تستخدم هذه اللغات عادةً واجهة البوابة العامة (CGI) لإنتاج صفحات ويب ديناميكية . كما يمكن لهذه الصفحات استخدام النوع الأول من البرمجة النصية من جانب العميل (DHTML، إلخ).

تاريخ

يصعب تحديد بداية صفحات الويب الديناميكية أو تسلسلها الزمني بدقة، لأن المفهوم الدقيق لا يتضح إلا بعد الانتشار الواسع لصفحات الويب. فقد ظهر بروتوكول HTTP منذ عام 1989، وتم اعتماد لغة HTML كمعيار عام منذ عام 1996. وبدأ انتشار متصفحات الويب مع ظهور متصفح موزاييك عام 1993. وبين عامي 1995 و1996، طُرحت في السوق العديد من منتجات الويب الديناميكية، بما في ذلك Coldfusion و WebObjects و PHP و Active Server Pages .

أتاح إدخال لغة جافا سكريبت (التي كانت تُعرف آنذاك باسم لايف سكريبت) إمكانية إنشاء صفحات ويب ديناميكية من جانب العميل، حيث يتم تنفيذ كود جافا سكريبت في متصفح العميل. [ 4 ] كان الحرف "J" في مصطلح AJAX يشير في الأصل إلى استخدام جافا سكريبت، بالإضافة إلى لغة XML . ومع ظهور معالجة جافا سكريبت من جانب الخادم، مثل Node.js الذي طُوّر في عام 2009، تُستخدم جافا سكريبت أيضًا لإنشاء صفحات ديناميكية على الخادم تُرسل كاملةً إلى العملاء.

يُعدّ نظام إدارة المحتوى MediaWiki ، الذي يُشغّل ويكيبيديا، مثالًا على صفحة ويب ديناميكية كانت في الأصل تعمل على جانب الخادم، ويتم التفاعل معها من خلال نماذج الإرسال ومعلمات عناوين URL. ومع مرور الوقت، أضافت الإضافات المُحسّنة تدريجيًا ، مثل المُحرّر المرئي، عناصر ديناميكية على جانب العميل، بينما تظل العناصر الديناميكية الأصلية على جانب الخادم، مثل نموذج التحرير الكلاسيكي، متاحة للرجوع إليها ( التراجع التدريجي ) في حالة حدوث خطأ أو عدم توافق.

البرمجة النصية من جانب الخادم

يتألف نظام العميل والخادم من أربع خطوات: المتصفح، طلب HTTP، خادم الويب، والاستجابة. تحدث برمجة جانب الخادم عندما يقوم خادم الويب بمعالجة وإنشاء صفحة ويب ديناميكية أو مورد.
عند تقديم طلب إلى صفحة ويب ديناميكية أو مورد، يقوم خادم التطبيق بمعالجة الطلب باستخدام لغة جانب الخادم الخاصة به.

يُستخدم برنامج يعمل على خادم ويب لإنشاء محتوى الويب على صفحات الويب المختلفة، وإدارة جلسات المستخدمين، والتحكم في سير العمل. وقد تتحدد استجابات الخادم بناءً على عوامل مثل البيانات الموجودة في نموذج HTML المُرسَل ، والمعلمات الموجودة في عنوان URL ، ونوع المتصفح المستخدم، ومرور الوقت، أو حالة قاعدة البيانات أو الخادم .

غالبًا ما تُنشأ صفحات الويب هذه باستخدام لغات برمجة من جانب الخادم ، مثل ASP و ColdFusion و Java و JavaScript و Perl و PHP و Ruby و Python وغيرها، وذلك بواسطة خادم دعم يعمل على نفس جهاز خادم الويب. تستخدم هذه اللغات عادةً واجهة البوابة العامة (CGI) لإنتاج صفحات ويب ديناميكية. ومن الاستثناءات البارزة ASP.NET و JSP ، اللتان تعيدان استخدام مفاهيم CGI في واجهات برمجة التطبيقات الخاصة بهما، ولكنهما في الواقع تُرسلان جميع طلبات الويب إلى آلة افتراضية مشتركة.

تُستخدم لغات البرمجة من جانب الخادم لتضمين علامات أو مؤشرات ضمن ملف المصدر لصفحة الويب على خادم الويب. [ 5 ] عندما يطلب مستخدم من جهاز عميل صفحة الويب هذه، يقوم خادم الويب بتفسير هذه العلامات أو المؤشرات لتنفيذ إجراءات على الخادم. على سبيل المثال، قد يُطلب من الخادم إدخال معلومات من قاعدة بيانات أو معلومات مثل التاريخ الحالي.

غالبًا ما يتم تخزين صفحات الويب الديناميكية مؤقتًا عندما يكون هناك عدد قليل من التغييرات أو لا توجد تغييرات متوقعة، ومن المتوقع أن تتلقى الصفحة كمية كبيرة من حركة مرور الويب التي من شأنها أن تجهد الخادم بشكل غير فعال وتبطئ تحميل الصفحة إذا كان عليه إنشاء الصفحات أثناء التشغيل لكل طلب.

برمجة جانب العميل

تُغيّر البرمجة النصية من جانب العميل سلوكيات واجهة المستخدم داخل صفحة ويب محددة استجابةً لإجراءات جهاز الإدخال، أو عند أحداث زمنية محددة. في هذه الحالة، يحدث السلوك الديناميكي ضمن العرض التقديمي . ويتم إنشاء محتوى جانب العميل على نظام الكمبيوتر المحلي للمستخدم. [ 6 ]

تستخدم صفحات الويب هذه تقنية عرض تُسمى صفحات الويب ذات الواجهة الغنية . وتُستخدم لغات البرمجة النصية من جانب العميل، مثل جافا سكريبت وأكشن سكريبت ، المستخدمة في تقنيات HTML الديناميكي (DHTML) وفلاش على التوالي، بشكل متكرر لتنسيق أنواع الوسائط (الصوت، والرسوم المتحركة، والنصوص المتغيرة، وما إلى ذلك) في العرض. كما تتيح البرمجة النصية من جانب العميل استخدام البرمجة النصية عن بُعد ، وهي تقنية تطلب من خلالها صفحة DHTML معلومات إضافية من خادم، باستخدام إطار مخفي ، أو طلبات XMLHttpRequests ، أو خدمة ويب .

كان أول استخدام علني للغة جافا سكريبت في عام 1995، عندما تم تطبيق اللغة في متصفح نتسكيب نافيجاتور 2 ، وتم توحيدها كمعيار ECMAScript بعد ذلك بعامين. [ 7 ]

مثال

يتم إنشاء محتوى جانب العميل على جهاز الكمبيوتر الخاص بالعميل. يقوم متصفح الويب باسترجاع صفحة من الخادم، ثم يعالج الكود المضمن في الصفحة (المكتوب عادةً بلغة جافا سكريبت ) ويعرض محتوى الصفحة المسترجعة للمستخدم. [ 8 ]

يمكن للخاصية innerHTML(أو أمر الكتابة) أن توضح عملية إنشاء الصفحة الديناميكية من جانب العميل: يمكن إعادة إنشاء صفحتين متميزتين، A و B، (بواسطة "استجابة ديناميكية للحدث") كـ document.innerHTML = Aو document.innerHTML = B؛ أو "ديناميكية عند التحميل" بواسطة document.write(A)و document.write(B).

التقنيات المركبة

تُسمى جميع مكونات العميل والخادم التي تُشكل معًا صفحة ويب ديناميكية بتطبيق ويب . وتتولى تطبيقات الويب إدارة تفاعلات المستخدم، والحالة، والأمان، والأداء. [ 9 ]

تستخدم تقنية Ajax مزيجًا من البرمجة النصية من جانب العميل وطلبات الخادم. وهي تقنية لتطوير تطبيقات الويب تُستخدم لتبادل المحتوى ديناميكيًا، حيث تُرسل طلبات إلى الخادم للحصول على البيانات اللازمة. يُعيد الخادم البيانات المطلوبة، والتي تتم معالجتها لاحقًا بواسطة برنامج نصي من جانب العميل. تُساهم هذه التقنية في تقليل وقت تحميل الخادم، لأن العميل لا يطلب من الخادم إعادة إنشاء صفحة الويب بالكامل، بل يُرسل فقط المحتوى المراد تغييره. تُعد خرائط جوجل مثالًا على تطبيق ويب يستخدم تقنيات Ajax.

يمكن لعميل الويب ، مثل متصفح الإنترنت، أن يعمل كخادم مستقل، حيث يصل إلى البيانات من خوادم متعددة، مثل Gopher وFTP وNNTP (يوزنت) وHTTP، لإنشاء صفحة ويب. يدعم HTTP تحميل المستندات من العميل إلى الخادم، وهناك عدة طرق للقيام بذلك.

انظر أيضاً

مراجع

  1. ديغروت، ساندي. "أدلة الموضوعات والمقررات الدراسية: جامعة إلينوي في شيكاغو الرقمية: مواقع الويب الثابتة والديناميكية" . researchguides.uic.edu . تم الاطلاع عليه بتاريخ 12 ديسمبر 2023 .{{cite web}}: CS1 maint: url-status ( link )
  2. فيلدينغ، روي توماس (2000). "الفصل 5: نقل الحالة التمثيلية (REST)" . الأنماط المعمارية وتصميم بنى البرمجيات القائمة على الشبكة (دكتوراه). جامعة كاليفورنيا، إرفاين.
  3. نيلسون، آن؛ نيلسون، ويليام إتش إم (2002). بناء التجارة الإلكترونية باستخدام هياكل قواعد بيانات الويب . أديسون ويسلي. ISBN 9780201741308.
  4. بنسون، برنت و. (1999). "جافا سكريبت" . إشعارات ACM SIGPLAN . 34 (4): 25-27 . doi : 10.1145/312009.312023 . S2CID 10076062 . .
  5. تاترو، كيفن (2013). برمجة PHP: إنشاء صفحات ويب ديناميكية ( الطبعة الثالثة). أورايلي. ISBN  9781449365837.
  6. دويل، باري؛ لوبيز، كريستينا فيديرا (17 يناير 2008). "مسح للتقنيات المستخدمة في تطوير تطبيقات الويب". arXiv : 0801.2618 [ cs.SE ].
  7. أوكين، جيه آر (2005). ثورة المعلومات: دليل غير مخصص للمبتدئين لتاريخ وتكنولوجيا واستخدام شبكة الإنترنت العالمية . دار آيرونباوند للنشر. رقم ISBN 9780976385745.
  8. "تعلم لغة VBScript"، بقلم ب. لوماكس. رقم ISBN 1-56592-247-6. إد. أورايلي، 1997. القسم ج13.
  9. "تطبيق ويب" . مؤرشف من الأصل بتاريخ 22 فبراير 2014. تم الاطلاع عليه بتاريخ 24 يوليو 2013 .{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط )