در کد بالا آغاز یک شیء EventSource ساخته ایم و آدرس URL ورقه ای را به آن داده ایم که اعلان ها یا این که بروزرسانی ها را می فرستد (در این نمونه -> demo_sse .php) . هر توشه که بروزرسانی ای دریافت شود، اتفاق افتاد onmessage اجرا خواهد شد و هنگامی که این رویداد اجرا شود داده های ارسالی را گرفته و در عنصری با id برابر با "id="result قرار می دهد . بقیه ی قسمت های کد برای نظارت کردن پشتیبانی مرورگر از این قابلیت بودند . صورت بی آلایش و قطع شده ی آن به این فیس است: if(typeof(EventSource) !== "undefined") { // مرورگر از Server-sent event پشتیبانی می کند // کد زمینه لحاظ را اینجا بنویسید } else { // متاسفانه مرورگر شما از Server-sent event پشتیبانی نمی کند .
طراحی سایت در مشهد } 1 2 3 4 5 6 if(typeof(EventSource) !== "undefined") { // مرورگر از Server-sent event پشتیبانی می کند // کد قضیه لحاظ را اینجا بنویسید } else { // متاسفانه مرورگر شما از Server-sent event پشتیبانی نمی نماید . } البته ما هنوز کد های باطن demo_sse .php را ندیده ایم . برای اینکه نمونه بالا فعالیت کند بایستی سروری داشته باشید که قابلیت و امکان ارسال بروزرسانی را داشته باشد (مانند PHP یا ASP) . کدنویسی سمت سرور برای این مثال ساده است؛ باید مقدار Content-Type در header را روی "text/event-stream" تهیه نمایید و سپس می توانید بروزرسانی هایتان را به ورقه ی اینترنت ارسال فرمایید . محتوای فولدر به این شکل است: header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); $time = date('r'); echo "data: The server time is: {$time}\n\n"; flush(); ?> 1 2 3 4 5 6 7 8 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() %> 1 2 3 4 5 6 <% Response .ContentType = "text/event-stream" Response .Expires = -1 Response .Write("data: The server time is: " & now()) Response .Flush() %> همانطور که گفتیم مقدمه Content-Type را روی text/event-stream تنظیم کرده ایم . بعد از آن گفته ایم که ورقه نباید چیزی را cache کند (اگر cache شود دیگر بروزرسانی سناریو داده نخواهد شد) . در سطح ی سپس داده های موضوع حیث را برای ارسال آماده کرده ایم (همیشه با " :data" شروع شود) و در انتها داده را با امر Flush به سمت ورقه می فرستیم تا نمایش داده شود .
ما در نمونه بالا از روی داد onmessage استعمال کرده ایم اما اتفاق افتاد های دیگری هم وجود دارد: onopen: زمانی که اتصال با سرور برقرار می شود . onmessage: وقتی که پیامی دریافت می شود . onerror: وقتی که خطایی صورت می دهد . امیدوارم از این قسمت لذت برده باشید . این قسمت، قسمت آخر از این محرمانه آموزشی بود اما در آتی ممکن است مقالات مستقلی در اختیار شما دوستان خوب قرار دهیم . شما با گذراندن این دوره با تمام مسائل با اهمیت و جزئی HTML آشنا گردیده اید و می توانید یک برگه ی وب را اساس ریزی فرمایید . تا عصر ای دیگر بدرود!