قدم قبلی > | < قدم بعدی |
رویدادهای سرور ارسال شده HTML5
در این آموزش HTML به معرفی HTML SEE می پردازیم.
رویدادهای ارسال شده توسط سرور اجازه می دهد به یک صفحه وب برای دریافت به روز رسانی از یک سرور.
رویدادهای سرور ارسال شده – پیام یک طرفه
یک رویداد ارسال شده توسط سرور زمانی است که یک صفحه وب به صورت خودکار به روزرسانی ها را از یک سرور دریافت می کند.
این نیز ممکن بود قبل از آن، اما صفحه وب باید بپرسید که آیا هر گونه به روز رسانی در دسترس است. با رویدادهای فرستاده شده توسط سرور، به روز رسانی ها به طور خودکار می آیند.
مثالها: به روز رسانی فیس بوک / توییتر، به روز رسانی قیمت سهام، اخبار خبری، نتایج ورزشی، و غیره
دریافت اطلاعیه های رویداد سرور ارسال شده
شیء EventSource برای دریافت اعلانهای رویداد ارسال شده توسط سرور استفاده می شود:
۱ ۲ ۳ ۴ | var source = new EventSource("demo_sse.php"); source.onmessage = function(event) { document.getElementById("result").innerHTML += event.data + "<br>"; }; |
توضیح مثال:
- یک شیء EventSource جدید ایجاد کنید و نشانی اینترنتی صفحه ای را که بهروزرسانی شده را مشخص کنید (در این مثال «demo_sse.php»)
- هر بار که به روز رسانی دریافت می شود، رویداد onmessage رخ می دهد
- وقتی یک رویداد در حال ارسال رخ می دهد، داده های دریافت شده را به عنصر با id = “result”
بررسی پشتیبانی از رویدادهای سرور ارسال شده
در مثال مثال فوق، برخی از خطوط اضافی برای کنترل مرورگر برای رویدادهای ارسال شده سرور وجود دارد:
۱ ۲ ۳ ۴ ۵ ۶ | if(typeof(EventSource) !== "undefined") { // Yes! Server-sent events support! // Some code..... } else { // Sorry! No server-sent events support.. } |
مثال کد سرور
برای مثال در بالا برای کار، شما نیاز به سرور قادر به ارسال به روز رسانی داده ها (مانند PHP یا ASP).
نحو نحوی جریان رویداد سرور ساده است. هدر “Content-Type” را به “text / event-stream” تنظیم کنید. اکنون می توانید ارسال جریان رویداد را شروع کنید.
کد در 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:
۱ ۲ ۳ ۴ ۵ ۶ | <% Response.ContentType = "text/event-stream" Response.Expires = -۱ Response.Write("data: The server time is: " & now()) Response.Flush() %> |
توضیح کد:
- هدر “Content-Type” را به “text / event-stream” تنظیم کنید
- مشخص کنید که صفحه نباید ذخیره شود
- خروجی داده ها را ارسال کنید (همیشه با “داده ها” شروع می شود)
- اطلاعات خروجی را به صفحه وب بفشارید
گام قبلی > | < گام بعدی |
هنوز دیدگاهی برای این مطلب ثبت نشده است.