دروس HTML

صفحة HTML الرئيسية مقدمة HTML محرري HTML أساسيات HTML عناصر HTML سمات HTML عناوين HTML فقرات HTML أنماط HTML تنسيق HTML اقتباسات HTML تعليقات HTML ألوان HTML HTML CSS روابط HTML صور HTML رمز HTML المفضل جداول HTML قوائم HTML كتلة HTML ومضمنة فئات HTML معرف HTML إطارات HTML IFrame HTML جافا سكريبت مسارات ملفات HTML رئيس HTML تنسيق HTML مستجيب لـ HTML HTML Computercode دلالات HTML دليل نمط HTML كيانات HTML رموز HTML HTML Emojis أحرف HTML تشفير عنوان URL لـ HTML HTML مقابل XHTML

نماذج HTML

نماذج HTML سمات نموذج HTML عناصر نموذج HTML أنواع إدخال HTML سمات إدخال HTML سمات نموذج إدخال HTML

رسومات HTML

قماش HTML HTML SVG

وسائط HTML

وسائط HTML فيديو HTML صوت HTML المكونات الإضافية لـ HTML HTML يوتيوب

واجهات برمجة تطبيقات HTML

HTML تحديد الموقع الجغرافي سحب / إسقاط HTML تخزين الويب HTML عمال ويب HTML HTML SSE

أمثلة HTML

أمثلة HTML مسابقة HTML تمارين HTML شهادة HTML ملخص HTML ولوجية HTML

مراجع HTML

قائمة علامات HTML سمات HTML سمات HTML العامة دعم متصفح HTML أحداث HTML ألوان HTML قماش HTML صوت / فيديو HTML أنماط HTML مجموعات أحرف HTML تشفير عنوان URL لـ HTML أكواد HTML لانج رسائل HTTP طرق HTTP PX to EM Converter اختصارات لوحة المفاتيح

واجهة برمجة تطبيقات HTML SSE


تتيح الأحداث المرسلة من الخادم (SSE) لصفحة الويب الحصول على تحديثات من الخادم.


الأحداث المرسلة من الخادم - طريقة واحدة للمراسلة

الحدث الذي يرسله الخادم هو عندما تحصل صفحة الويب تلقائيًا على تحديثات من الخادم.

كان هذا ممكنًا أيضًا من قبل ، ولكن صفحة الويب يجب أن تسأل عما إذا كانت هناك تحديثات متاحة. مع الأحداث المرسلة من الخادم ، تأتي التحديثات تلقائيًا.

أمثلة: تحديثات Facebook / Twitter ، تحديثات أسعار الأسهم ، موجز الأخبار ، نتائج الرياضة ، إلخ.


دعم المتصفح

تحدد الأرقام الواردة في الجدول إصدار المتصفح الأول الذي يدعم الأحداث المرسلة من الخادم بشكل كامل.

API
SSE 6.0 79.0 6.0 5.0 11.5

تلقي إعلامات الأحداث المرسلة من الخادم

يتم استخدام كائن EventSource لتلقي إعلامات الأحداث المرسلة من الخادم:

مثال

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
  document.getElementById("result").innerHTML += event.data + "<br>";
};

شرح المثال:

  • قم بإنشاء كائن EventSource جديد ، وحدد عنوان URL للصفحة التي ترسل التحديثات (في هذا المثال "demo_sse.php")
  • في كل مرة يتم تلقي تحديث ، يقع حدث onmessage
  • عند حدوث حدث onmessage ، ضع البيانات المستلمة في العنصر ذي المعرف = "النتيجة"

تحقق من دعم الأحداث المرسلة من الخادم

في مثال tryit أعلاه ، كانت هناك بعض الأسطر الإضافية من التعليمات البرمجية للتحقق من دعم المتصفح للأحداث التي يرسلها الخادم:

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


مثال على رمز جانب الخادم

لكي يعمل المثال أعلاه ، تحتاج إلى خادم قادر على إرسال تحديثات البيانات (مثل PHP أو ASP).

يعتبر تركيب دفق الحدث من جانب الخادم أمرًا بسيطًا. اضبط رأس "نوع المحتوى" على "نص / حدث-تيار". الآن يمكنك البدء في إرسال تدفقات الحدث.

كود PHP (demo_sse.php):

<?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 (VB) (demo_sse.asp):

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

وأوضح الكود:

  • اضبط رأس "نوع المحتوى" على "نص / حدث-تيار"
  • حدد أن الصفحة لا يجب تخزينها في ذاكرة التخزين المؤقت
  • إخراج البيانات المراد إرسالها ( ابدأ دائمًا بـ "data:")
  • قم بمسح بيانات الإخراج مرة أخرى إلى صفحة الويب

كائن EventSource

في الأمثلة أعلاه ، استخدمنا حدث onmessage للحصول على الرسائل. لكن الأحداث الأخرى متوفرة أيضًا:

Events Description
onopen When a connection to the server is opened
onmessage When a message is received
onerror When an error occurs