فهرست سرفصل‌های HTML
خانه (HOME) مقدمه (Introduction) ویرایشگرها (Editors) پایه ها (Basic) المان ها (Elements) ویژگی ها (Attributes) سرفصل ها (Headings) پاراگراف ها (Paragraphs) استایل ها (Styles) قالب بندی متن (Formatting) نقل قول ها (Quotations) توضیحات (Comments) رنگ ها (Colors) مدل RGB (RGB) مدل HEX (HEX) مدل HSL (HSL) استفاده از CSS (CSS) لینک ها (Links) رنگ لینک ها (Link Colors) نشانه های لینک (Link Bookmarks) تصاویر (Images) نقشه تصویر (Image Map) تصویر پس زمینه (Background Images) المان Picture (The Picture Element) فاوآیکون (Favicon) عنوان صفحه (Page Title) جداول (Tables) مرزهای جدول (Table Borders) اندازه های جدول (Table Sizes) سربرگ های جدول (Table Headers) فاصله داخلی و بیرونی جدول (Padding & Spacing) ادغام سلول ها (Colspan & Rowspan) استایل دهی جدول (Table Styling) گروه ستون ها (Table Colgroup) فهرست ها (Lists) فهرست نامرتب (Unordered Lists) فهرست مرتب (Ordered Lists) سایر فهرست ها (Other Lists) بلوک ها و درون خطی ها (Block & Inline) المان div (Div) کلاس ها (Classes) شناسه ها (Id) فریم ها (Iframes) جاوااسکریپت (JavaScript) مسیر فایل ها (File Paths) بخش head (Head) چیدمان (Layout) طراحی واکنش گرا (Responsive) کدهای رایانه ای (Computercode) المان های معنایی (Semantics) راهنمای نگارش (Style Guide) نهادها (Entities) نمادها (Symbols) ایموجی ها (Emojis) کدگذاری نویسه ها (Charsets) رمزگذاری URL (URL Encode) مقایسه با XHTML (vs. XHTML) فرم ها (Forms) ویژگی های فرم (Form Attributes) المان های فرم (Form Elements) انواع ورودی (Input Types) ویژگی های ورودی (Input Attributes) بوم نقاشی (Canvas) بردارهای گرافیکی (SVG) رسانه ها (Media) ویدیو (Video) صدا (Audio) افزونه ها (Plug-ins) یوتیوب (YouTube) رابط های وب (Web APIs) مکان یابی جغرافیایی (Geolocation) کشیدن و رها کردن (Drag and Drop) ذخیره سازی وب (Web Storage) کارگران وب (Web Workers) رویدادهای ارسالی از سرور (Server-Sent Events-SSE) توضیح (<!-->) اعلان نوع سند (<!DOCTYPE>) پیوند (a) اختصار (abbr) سرنام (acronym) آدرس (address) اپلت (applet) ناحیه نقشه (area) مقاله (article) کنار نویس (aside) صوت (audio) پررنگ (b) پایه (base) فونت پایه (basefont) جداساز دوطرفه (bdi) جهت متن (bdo) بزرگ (big) بلوک نقل (blockquote) بدنه (body) خط جدید (br) دکمه (button) بوم (canvas) عنوان جدول (caption) مرکز (center) ارجاع (cite) کد (code) ستون (col) گروه ستون (colgroup) داده (data) فهرست داده (datalist) تعریف شرح (dd) حذف (del) جزئیات (details) اصطلاح (dfn) دایرکتوری (dir) بخش (div) فهرست تعاریف (dl) عنوان تعریف (dt) تأکید (em) جاسازی (embed) مجموعه فیلدها (fieldset) عنوان شکل (figcaption) شکل (figure) فونت (font) پاورقی (footer) فرم (form) فریم (frame) مجموعه فریم ها (frameset) سرفصل ها (h1–h6) سر (head) سربرگ (header) گروه عنوان (hgroup) خط افقی (hr) سند HTML (html) مورب (i) چارچوب درون صفحه ای (iframe) تصویر (img) ورودی (input) درج (ins) صفحه کلید (kbd) برچسب (label) افسانه (legend) مورد فهرست (li) پیوند منبع (link) بخش اصلی (main) نقشه تصویر (map) نشانه گذاری (mark) منو (menu) فراداده (meta) سنجش (meter) ناوبری (nav) بدون فریم (noframes) بدون اسکریپت (noscript) شیء (object) فهرست مرتب (ol) گروه گزینه ها (optgroup) گزینه (option) خروجی (output) پاراگراف (p) پارامتر (param) تصویر پاسخ گو (picture) پیش قالب (pre) پیشرفت (progress) نقل قول کوتاه (q) پرانتز روبی (rp) متن روبی (rt) روبی (ruby) خط زده (s) نمونه خروجی (samp) اسکریپت (script) جستجو (search) بخش (section) انتخاب (select) کوچک (small) منبع (source) دامنه (span) خط بطلان (strike) پررنگ معنایی (strong) سبک (style) زیرنویس (sub) خلاصه (summary) بالانویس (sup) بردار گرافیکی (svg) جدول (table) بدنه جدول (tbody) سلول جدول (td) الگو (template) ناحیه متن (textarea) پاورقی جدول (tfoot) سر ستون جدول (th) سربرگ جدول (thead) زمان (time) عنوان (title) سطر جدول (tr) زیرنویس رسانه (track) تله تایپ (tt) زیرخط دار (u) فهرست نامرتب (ul) متغیر (var) ویدیو (video) شکست خط (wbr)
HTML

HTML — رویدادهای ارسالی از سرور (Server-Sent Events-SSE)

آخرین بروزرسانی: 1404/08/07

رویدادهای ارسالی از سرور (Server-Sent Events-SSE)

«رویدادهای ارسالی از سرور (SSE)» یعنی سرور خودش پیام بفرستد. صفحه هر بار درخواست نمی دهد. بنابراین بروزرسانی ها خودکار می رسند.

SSE چیست و چه کاربردی دارد؟

SSE پیام ها را یک طرفه ارسال می کند. یعنی از سرور به مرورگر. مثلا خبر فوری، نتایج مسابقه، یا قیمت لحظه ای.

دریافت پیام با EventSource

شی «EventSource» پیام ها را می گیرد. هر پیام به رویداد onmessage می آید.

<script>
const x = document.getElementById("result");
if (typeof(EventSource) !== "undefined") {
  var source = new EventSource("demo_sse.php");
  source.onmessage = function(event) {
    x.innerHTML += event.data + "<br>";
  };
} else {
  x.innerHTML = "Sorry, no support for server-sent events.";
}
<\/script>

مشاهده در ادیتور

بررسی پشتیبانی مرورگر

اول ببین مرورگر از SSE پشتیبانی می کند یا نه.

if (typeof(EventSource) !== "undefined") {
  // Yes! Server-sent events support!
  // Some code...
} else {
  // Sorry! No server-sent events support..
}

مشاهده در ادیتور

نمونه سمت سرور (PHP)

پاسخ را با MIME نوع text/event-stream بفرست. داده ها با پیشوند data: می آیند.

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

مشاهده در ادیتور

نمونه سمت سرور (ASP)

اینجا هم همان الگو است. نوع محتوا و متن داده مهم اند.

<%
Response.ContentType = "text/event-stream";
Response.Expires = -1;
Response.Write("data: The server time is: " & now());
Response.Flush();
%>

مشاهده در ادیتور

رویدادهای مهم EventSource

سه رویداد کلیدی داریم. یکی برای باز شدن، یکی پیام، و یکی خطا.

  • onopen : اتصال باز شد.
  • onmessage : پیام دریافت شد.
  • onerror : خطا رخ داد.

گام های عملی راه اندازی

  1. سرویس بساز و هدر text/event-stream بفرست.
  2. در کلاینت یک EventSource بساز.
  3. در onmessage داده را نمایش بده.

برای کار موازی، کارگران وب را ببین. همچنین صفحه رویدادهای ارسالی از سرور مرجع همین بخش است.

جمع بندی سریع

  • SSE پیام ها را خودکار می فرستد.
  • کلاینت فقط گوش می دهد.
  • با EventSource وصل می شوی.
  • محتوا باید event-stream باشد.
  • هر پیام با data: شروع می شود.