موضوع مقاله: صفحه وب پویا | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # صفحه وب پویا | مقدمه: صفحه وب پویا گونه‌ای صفحه وب است که در زمان اجرا (هنگام اجرای نرم‌افزار) ساخته می‌شود، در برابر صفحه وب ایستا که همان‌گونه که ذخیره شده تحویل داده می‌شود. | ## بخش 1: صفحه وب پویا | صفحه وب پویای سمت سرور، صفحه‌ای است که ساختار آن توسط یک سرور کاربردی از طریق پردازش اسکریپت‌های سمت سرور کنترل می‌شود. در اسکریپت‌نویسی سمت سرور، پارامترها تعیین می‌کنند که چگونگی ساخت هر صفحه وب جدید پیش برود، از جمله راه‌اندازی پردازش‌های بیشتر در سمت کلاینت. صفحه وب پویای سمت کلاینت نیز صفحه‌ای است که با کمک جاوااسکریپت در مرورگر، هنگام بارگذاری پردازش می‌شود. جاوااسکریپت می‌تواند از طریق مدل شیءگرای سند (DOM) با صفحه تعامل داشته باشد تا وضعیت صفحه را بخواند و تغییر دهد. مفهوم صفحه وب پویا در برابر صفحه وب ایستا قرار می‌گیرد؛ محتوای یک صفحه پویا بسته به اطلاعاتی چون زمان، نام کاربر، فرم‌های پر شده یا داده‌های دریافتی از سرور می‌تواند تغییر کند. فناوری‌هایی مانند ایجکس، اچ‌تی‌ام‌ال پویا و اسکریپت‌نویسی سمت سرور از پایه‌های اصلی تجربه پویا در وب به‌شمار می‌روند. مفاهیم پایه گشت‌وگذار کلاسیک ابرمتن با اچ‌تی‌ام‌ال یا اکس‌اچ‌تی‌ام‌ال به تنهایی، محتوای «ایستا» فراهم می‌کند؛ یعنی کاربر یک صفحه وب را درخواست می‌کند و صرفاً آن صفحه و اطلاعات موجود در آن را مشاهده می‌کند. با این حال، یک صفحه وب می‌تواند تجربه‌ای «زنده»، «پویا» یا «تعاملی» نیز ارائه دهد. محتوا (متن، تصاویر، فیلدهای فرم و غیره) روی یک صفحه وب می‌تواند در پاسخ به زمینه‌ها یا شرایط مختلف تغییر کند. دو روش برای ایجاد این نوع تأثیر وجود دارد: بهره‌گیری از اسکریپت‌نویسی سمت کلاینت برای تغییر رفتارهای رابط کاربری درون یک صفحه وب خاص، در پاسخ به کنش‌های ماوس یا صفحه‌کلید، داده‌های دریافت‌شده از یک واسط برنامه‌نویسی وب، وب‌سوکت یا در رویدادهای زمان‌بندی مشخص. بهره‌گیری از اسکریپت‌نویسی سمت سرور برای تغییر کد منبع صفحه ارائه‌شده میان صفحات، با تنظیم ترتیب یا بارگذاری مجدد صفحه‌های وب یا محتوای وب ارائه‌شده به مرورگر. پاسخ‌های سرور ممکن است توسط شرایطی مانند داده‌های ارسال‌شده در یک فرم HTML، پارامترهای موجود در URL، نوع مرورگر مورد بهره‌گیری، گذر زمان یا وضعیت پایگاه داده یا سرور تعیین شوند. | ## بخش 2: صفحه وب پویا | صفحات وبی که از اسکریپت‌نویسی سمت کلاینت بهره می‌گیرند باید از فناوری نمایشی موسوم به صفحات با رابط غنی استفاده کنند. زبان‌های اسکریپت‌نویسی سمت کلاینت مانند جاوااسکریپت یا اکشن‌اسکریپت، که به ترتیب برای فناوری‌های اچ‌تی‌ام‌ال پویا (DHTML) و فلش به کار می‌روند، اغلب برای هماهنگ‌سازی انواع رسانه (صدا، پویانمایی، متن متغیر و غیره) در نمایش مورد بهره‌گیری قرار می‌گیرند. همچنین می‌توان از یک چارچوب نرم‌افزاری تحت وب برای ایجاد یک واسط برنامه‌نویسی وب بهره گرفت که کلاینت از طریق جاوااسکریپت از آن برای دریافت داده و تغییر پویای ظاهر یا رفتار خود بسته به داده‌ها استفاده می‌کند. این زبان‌های سمت سرور معمولاً از واسط دروازه مشترک (CGI) برای تولید صفحات وب پویا بهره می‌گیرند. این نوع صفحات همچنین می‌توانند در سمت کلاینت از نوع اول (DHTML و غیره) نیز استفاده کنند. پیشینه دشوار است که به‌طور دقیق از «آغازهای صفحه وب پویا» یا گاه‌شناسی سخن گفت، زیرا این مفهوم دقیق تنها پس از «توسعه گسترده صفحات وب» معنا می‌یابد. معرفی جاوااسکریپت (که در آن زمان LiveScript نامیده می‌شد) تولید صفحات وب پویای سمت کلاینت را ممکن ساخت و کد جاوااسکریپت در مرورگر کلاینت اجرا می‌شد. با رشد پردازش جاوااسکریپت در سمت سرور، برای نمونه Node.js که در اصل در سال ۲۰۰۹ توسعه یافت، جاوااسکریپت همچنین برای ساخت پویای صفحات در سمت سرور که به‌صورت کامل برای کلاینت‌ها فرستاده می‌شوند نیز به کار می‌رود. مدیاویکی، سامانه مدیریت محتوایی که ویکی‌پدیا را پشتیبانی می‌کند، نمونه‌ای از یک صفحه وب پویای اصالتاً سمت سرور است که از طریق ارسال فرم و پارامترهای URL با آن تعامل می‌شود. در طول زمان، افزونه‌هایی با مانند عناصری پویا در سمت کلاینت نیز افزوده‌اند، در حالی که عناصر پویای اصلی سمت سرور مانند فرم ویرایش کلاسیک برای در صورت بروز خطا یا ناسازگاری در دسترس باقی می‌مانند. یک برنامه در حال اجرا روی یک سرور وب برای تولید محتوای وب در صفحات مختلف، مدیریت نشست‌های کاربری و کنترل گردش کار به کار می‌رود. پاسخ‌های سرور ممکن است توسط شرایطی مانند داده‌های ارسال‌شده در یک فرم HTML، پارامترهای موجود در URL، نوع مرورگر مورد بهره‌گیری، گذر زمان یا وضعیت پایگاه داده یا سرور تعیین شوند. | ## بخش 3: صفحه وب پویا | این زبان‌های سمت سرور اغلب از واسط دروازه مشترک (CGI) برای تولید صفحات وب پویا بهره می‌گیرند. زبان‌های سمت سرور برای درج برچسب‌ها یا نشانگرها درون پرونده منبع صفحه وب روی سرور وب به کار می‌روند. هنگامی که یک کاربر روی رایانه کلاینت آن صفحه وب را درخواست می‌کند، سرور وب این برچسب‌ها یا نشانگرها را تفسیر می‌کند تا کنش‌هایی روی سرور انجام دهد. برای نمونه، ممکن است به سرور دستور داده شود که اطلاعاتی از پایگاه داده یا اطلاعاتی مانند تاریخ جاری را درج کند. اسکریپت‌نویسی سمت کلاینت اسکریپت‌نویسی سمت کلاینت عبارت است از تغییر رفتارهای رابط کاربری درون یک صفحه وب خاص در پاسخ به کنش‌های دستگاه ورودی، یا در رویدادهای زمان‌بندی مشخص. زبان‌های اسکریپت‌نویسی سمت کلاینت مانند جاوااسکریپت یا اکشن‌اسکریپت، که به ترتیب برای فناوری‌های اچ‌تی‌ام‌ال پویا (DHTML) و فلش به کار می‌روند، اغلب برای هماهنگ‌سازی انواع رسانه (صدا، پویانمایی، متن متغیر و غیره) در نمایش مورد بهره‌گیری قرار می‌گیرند. نخستین بهره‌گیری عمومی از جاوااسکریپت در سال ۱۹۹۵ بود، زمانی که این زبان در پیاده‌سازی شد و دو سال بعد به عنوان ECMAScript استاندارد گردید. فناوری‌های ترکیبی همه مؤلفه‌های کلاینت و سرور که به‌طور جمعی یک صفحه وب پویا می‌سازند، یک برنامه وب نامیده می‌شوند. ایجکس ترکیبی از هر دو اسکریپت‌نویسی سمت کلاینت و درخواست‌های سمت سرور را به کار می‌گیرد. این یک روش توسعه برنامه وب برای تبادل پویای محتوا است و برای این منظور درخواست‌هایی برای داده به سرور می‌فرستد. سرور داده‌های درخواست‌شده را بازمی‌گرداند که سپس توسط یک اسکریپت سمت کلاینت پردازش می‌شود. | ## جمع‌بندی | این روش می‌تواند بار سرور را کاهش دهد زیرا کلاینت درخواست بازتولید کل صفحه وب توسط تجزیه‌گر زبان سرور را نمی‌دهد؛ تنها محتوایی که تغییر خواهد کرد منتقل می‌شود.