وب مدرن، رابط کاربری و تجربه‌ی وب · فصل ۱ — مرورگر، سرور، رندر و معماری صفحه · 30

صفحه‌ی ثابت و صفحه‌ی پویا چیست و کدام برای چه چیزی مناسب است؟

_Locale: fa-IR · Lesson: WEBF-003 · Public order: 30_

Static vs Dynamic Pages: Which Fits What? — en-US

پیش‌نیازها

_Locale: fa-IR · Lesson: WEBF-003 · Public order: 30_

خروجی و artifact کاری

این درس برای ساختن دفتر تصمیم Static/Dynamic نسخه ۱ است: یک artifact تصمیم که مشاهده، فرض، محدودیت و evidence موردنیاز را از هم جدا می‌کند. هدف حفظ یک مدل قابل‌انتقال است، نه حفظ‌کردن نام ابزارها.

For a bounded page requirement, identify what can remain pre-produced, what must vary, where variation can occur, and what evidence would justify the decision.

مدل مرزی

Static و Dynamic درباره محل و زمان ایجاد variation هستند؛ نه معادل ساده‌ی «بدون JavaScript/با JavaScript» یا «بدون database/با database». یک صفحه می‌تواند از قبل تولید شده باشد و در مرورگر رفتار تعاملی غنی داشته باشد. یک response نیز می‌تواند در زمان request تولید شود، حتی اگر هیچ databaseای نخواند. تصمیم درست از منبع variation آغاز می‌شود.

در هر بخش سه برچسب نگه دارید: «مشاهده‌شده»، «استنباط محدود» و «نیازمند بررسی». اگر evidence در دسترس نیست، نتیجه را unknown ثبت کنید؛ نام ابزار یا pass شدن یک happy path جای evidence را نمی‌گیرد.

1. response را توصیف کنید، نه نام ابزار را

بپرسید representation تحویل‌شده از قبل آماده بوده یا برای همین request تولید شده است. نام framework فقط سرنخ پیاده‌سازی است، نه خود classification.

2. تولید server را از update سمت client جدا کنید

HTML ازپیش‌تولیدشده می‌تواند JavaScript داشته باشد و theme، filter یا داده بعدی را تغییر دهد. این رفتار، response اولیه server را request-generated نمی‌کند.

3. database الزامی نیست

خروجی زمان request می‌تواند به header، زمان، محاسبه، service بالادستی یا configuration وابسته باشد. در جهت مقابل، build می‌تواند database را بخواند و file ثابت بسازد.

4. بخش‌ها را classify کنید، نه کل صفحه را با شعار

یک صفحه ممکن است shell ازپیش‌تولیدشده، status زمان request و personalization سمت client را هم‌زمان داشته باشد. یک label کلی معماری واقعی را پنهان می‌کند.

5. تصمیم را به نرخ تغییر و evidence وصل کنید

ثبت کنید چه کسی اطلاعات را تغییر می‌دهد، تغییر با چه تأخیری باید دیده شود، آیا user-specific است، failure قابل قبول چیست و cache invalidation چگونه کنترل می‌شود.

روش پنج‌مرحله‌ای

  1. صفحه را به regionهایی تقسیم کنید که مستقل از هم تغییر می‌کنند.
  2. برای هر region منبع variation را تعیین کنید: نویسنده محتوا، deployment، context درخواست، state کاربر یا داده زنده.
  3. زمان تولید را انتخاب کنید: build time، request time یا browser runtime.
  4. cache scope، trigger ابطال، fallback شکست، مرز privacy و اثر accessibility را ثبت کنید.
  5. اگر معماری ترکیبی است، classification ترکیبی بنویسید و یک label را به همه بخش‌ها تحمیل نکنید.

مثال حل‌شده

صفحه documentation به‌صورت HTML ازپیش‌ساخته تحویل می‌شود. preference مربوط به theme در browser خوانده و classها بدون request جدید تغییر می‌کنند. badge وضعیت service از endpoint و در زمان request گرفته می‌شود. ledger قابل دفاع، بدنه را pre-produced، theme را client-dynamic و badge را request-dependent ثبت می‌کند و برای هرکدام cache و failure rule جدا دارد. label کلی dynamic این مرزها را از بین می‌برد.

ماتریس تصمیم و evidence

موضوعمرز/مالکevidenceتصمیم یا محدودیت
بدنه مقالهbuild timeHTML مشترک ازپیش‌تولیدشدهابطال هنگام publish محتوا
themebrowser runtimepreference هر devicedefault خوانا بدون script
badge وضعیتfetch زمان request/runtimestatus مشترک کوتاه‌عمرنمایش unknown زمان‌دار هنگام شکست
پنل accountrequest یا client fetchداده private هر کاربرهرگز در public cache قرار نگیرد

خطاهای محتمل و روش اصلاح

  • برابرگرفتن Static با نبود JavaScript
  • برابرگرفتن Dynamic با وجود database
  • ادعای اینکه Static همیشه سریع‌تر یا امن‌تر است

برای هر مورد، ادعا را محدود کنید، یک counterexample بسازید و بنویسید کدام مشاهده می‌تواند آن را تأیید یا رد کند.

تمرین انتقال

سناریو را طوری تغییر دهید که یکی از فرض‌های مثال دیگر برقرار نباشد. بدون کپی‌کردن تصمیم قبلی، دفتر تصمیم Static/Dynamic نسخه ۱ را دوباره بسازید؛ سپس تفاوت decision rule و تفاوت دادهٔ ورودی را توضیح دهید.

این درس چه چیزی را ثابت نمی‌کند

این درس certification، تضمین production یا پوشش همه implementationها را ادعا نمی‌کند. نتیجه فقط در مرز سناریو، sourceهای تاریخ‌دار و observationهای ثبت‌شده معتبر است.

خودسنجی

  • [ ] آیا مسئولیت‌ها را از نام framework یا tool جدا کرده‌ام؟
  • [ ] آیا دست‌کم یک failure probe و نتیجه موردانتظار آن را نوشته‌ام؟
  • [ ] آیا fact، inference و design choice از هم مشخص‌اند؟
  • [ ] آیا non-claim و evidence گمشده را ثبت کرده‌ام؟
  • [ ] آیا transfer را روی context تغییرکرده و بدون پاسخ آماده انجام داده‌ام؟

منابع و مرز تازگی

sourceها در 2026-09-19 طبق Bible منجمدشده مرور شده‌اند. تاریخ review_due یک trigger برای بازبینی نسخه‌ای است؛ هیچ بسته‌ای نباید درجا و بدون نسخه جدید تغییر کند.

  • S-MDN-CS — Static and dynamic server response model. (https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Server-side/First_steps/Client-Server_overview; review: 2026-12-31)
  • S-MDN-JS — Client-side and server-side dynamic behavior distinction. (https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/What_is_JavaScript; review: 2026-12-31)

ارزیابی

پاسخ‌نامه‌ی این درس در بسته‌ی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار می‌فرستد.

WEBF-003-SUM1 retrieval

lesson ✗AI ✗notes ✗

WEBF-003-SUM2 application

lesson ✗AI ✗notes ✗

WEBF-003-SUM3 diagnosis

lesson ✗AI ✗notes ✗

WEBF-003-SUM4 decision

lesson ✗AI ✗notes ✗

WEBF-003-SUM5 transfer

lesson ✗AI ✗notes ✗
ملاک‌های ارزیابی (rubric)
DimensionCriticalSufficient evidence
boundary_accuracyyesResponsibilities in static versus dynamic delivery decisions are placed at the correct bounded layer/time/location and adjacent lessons are not absorbed.
evidence_and_uncertaintyyesCurrent factual claims are source-bounded; conditional paths and unknowns are stated rather than guessed.
decision_qualityyesThe decision recorded in Static/Dynamic Response Decision Record v1 follows from the scenario constraints and states what would invalidate it.
transfernoThe learner applies the same reasoning in a changed scenario without copying a fixed stack answer.

A submission passes only when every critical dimension is sufficient and the learner states missing evidence honestly. AI suggestions are not observed evidence; the learner remains accountable for the final bounded judgment.

منابع و تازگی

· PRACTICE_EVOLVING
Static and dynamic server response model.
· PRACTICE_EVOLVING
Client-side and server-side dynamic behavior distinction.

مطالعهٔ موارد (case studies)

رسانه و اسلایدهای درس

MAKNOW_WEBF-003_DECISION_EVIDENCE_TABLE_v1.0.0.svg
DECISION EVIDENCE TABLE v1.0.0.svg
MAKNOW_WEBF-003_FAILURE_REPAIR_v1.0.0.svg
FAILURE REPAIR v1.0.0.svg
MAKNOW_WEBF-003_PRIMARY_MODEL_v1.0.0.svg
PRIMARY MODEL v1.0.0.svg
MAKNOW_WEBF-003_WORKED_EXAMPLE_v1.0.0.svg
WORKED EXAMPLE v1.0.0.svg

فایل‌های آموزشی (دانلود)

XLSXStatic Dynamic Decision Ledger v1 v1.0.0.xlsxفایل‌های آموزشی (دانلود)
DOCXStatic Dynamic Decision Ledger v1 WORKSHEET v1.0.0.docxفایل‌های آموزشی (دانلود)
PDFStatic Dynamic Decision Ledger v1 WORKSHEET v1.0.0.pdfفایل‌های آموزشی (دانلود)