امکانات جدید HTML5: امکان SSE یا Server-side event

  • شروع کننده موضوع iReza
  • تاریخ شروع

iReza

کاربر عضو
26/8/12
328
0
16
سلام.

امروزه دیگه خیلی از وبسایت های تحت الگوی ajax داده ها رو ردوبدل میکنن.

و html یک الگوی جدید رویدادگراء(event-driven) در نسخه جدید پیاده سازی کرده.

یعنی چی خُب، میشه قشنگ حرف بزنی؟

یعنی اینکه شما یک فایل server-side یا همون مثلا php,asp مینویسی، سپس از یک پیچ استاتیک یا ایستا، با استفاده از sse، به صورت مداوم آپدیت*های اون صفحه رو همانند مراجعه حضوری مشاهده کنید.

نمونه کد js:


کد:
<!DOCTYPE html>
<html>
<body>
<h1>Getting server updates</h1>
<div id="result"></div>

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

</body>
</html>
اما محتویات فایل 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();
?>
اما شکا چه محتویاتی رو میتونید تغییر بدید؟

فقط کدهای قسمت 2رو میتونید تغییر بدید! و هروقت هم مخواستید پاسخی رو به sse بفرسید، باید اول رشته چاپی data: قرار داشته باشه.

ترجمه شده از