SSE مخفف کلمات Server-Sent Events است و امکان دریافت پیام های یک طرفه از سمت سرور بصورت اتوماتیک را فراهم می کند.
(SSE (Server-Sent Events - پیام های یک طرفه
SSE قابلیت جدیدی در Html5 است که به مرورگر این امکان را می دهد تا Updateهای ارسالی از طرف سرور را دریافت کند.
این قابلیت در گذشته بصورت دیگری وجود داشته است، هر زمان که Updateی ایجاد می شد صفحه وب برای دریافت Update مجبور بود آنرا درخواست نماید. اما با SSE این کار بصورت اتوماتیک و پشت پرده صورت می گیرد.
مثال هایی از SSE: تغییر عناوین خبرها، نتایج ورزشی، تغییر در شاخص ها و نمودارهای سایت های اقتصادی و ...
پشتیبانی مرورگرها
مرورگرهای Firefox, Opera, Chrome, Safari امکان دریافت پیام های یک طرفه از سمت سرور را پشتیبانی می کنند.
توجه: Internet Explorer امکان ارسال پیام های یکطرفه را پشتیبانی نمی کند.
دریافت اطلاعات ارسالی از سرور
شیء EventSource برای دریافت اطلاعات در Updateهای ارسالی از طرف سرور به کار می رود.
بلافاصله بعد از ایجاد شیء EventSource، این شیء تمام رویدادهایی که در URL تنظیم شده اتفاق می افتد را گوش می دهد (Listening).
شکل کلی استفاده از این شیء بصورت زیر است:
مثال (SSE چیست؟)
source.onmessage=function(event)
{
document.getElementById("result").innerHTML+=event.data + "<br>";
};
توضیح کد بالا:
- در خط اول یک شی جدید EventSource با نام source ایجاد کرده و صفحه demo_sse.php را به عنوان URL یا آدرس فایلی که Update را به صفحه ارسال می کند تعیین کرده ایم.
- - هر زمان که Update جدیدی دریافت شود رویداد onmessage اجرا می شود.
- - هر زمان که رویداد onmessage اجرا می شود نتیجه خروجی در عنصر با id معادل "result" به روز رسانی می شود. (آپدیت ارسالی در شی event.data قرار دارد)
چک کردن پشتیبانی مرورگر از SSE
بهتر است قبل از هر چیز پشتیبانی مرورگر از SSE را بررسی کنیم تا در هر حالت کد خود را بر مبنای آن بنویسیم.
قطعه کد زیر بررسی می کند که آیا مرورگر از متد SSE پشتیبانی می کند یا خیر و کد لازم را در هر صورت اجرا می نماید:
{
// Yes! Server-sent events support!
// Some code.....
}
else
{
// Sorry! No server-sent events support..
}
کد سمت سرور
برای اینکه مثال بالا عمل کند باید صفحه ای وجود داشته باشد که قابلیت تولید و ارسال Update را داشته باشد. برای مثال یک صفحه PHP یا ASP
کد سمت سرور برای ارسال آپدیت بسیار ساده است. کافی است در صفحه PHP یا ASP، مقدار خاصیت Content-Type صفحه را بر روی مقدار text/event-stream تنظیم نمایید. حالا می توانید جریان ارسال اطلاعات را شروع نمایید.
کد 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:
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>
توضیح کد:
- مقدار خاصیت Content-Type صفحه را بر روی مقدار text/event-stream تنظیم نمایید.
- مشخص نمایید که صفحه نباید اطلاعات را Cashe (ذخیره) نماید.
- داده ها را برای ارسال آماده نمایید، همواره با کلمه data شروع می شود.
- با استفاده از متد ()Flush، نتیجه را به صفحه درخواست کننده ارسال نمایید.
شیء EventSource
در مثال بالا از رویداد onmessage برای دریافت پیام، استفاده شده است. اما رویدادهای دیگری که در دسترس اند شامل موارد زیر است:
رویداد | توضیحات |
---|---|
onopen | زمانی که یک اتصال به سرور برقرار شود، اتفاق می افتد. |
onmessage | زمانی اتفاق می افتد که یک پیام دریافت شود. |
onerror | زمانی که یک خطا رخ دهد اتفاق می افتد. |
پیشنهادی که بنده دارم اینه پس از آموزش هر زبان یه آزمونی گذارده شود که خودمان را محک بزنیم
با تشکر
فقظ یه سوال داشتم اگه بخواهیم جای تگهای HTML را جابه جا کنیم باید چیکار کنیم ...
مثلا منو بالای همین سایت رو نگاه کنید اگر بخوایم لینک HTML به جای "خانه" باشه یعنی جاشون عوض شه باید کد HTML تگ li که "HTML" درونش قرار داره بیاد قبل تگ li که خانه درونش قرار داره این کار رو با php باید انجام بدیم یا با Java script میدونم که نوشتن کدش ممکنه طولانی بشه ولی فقط یه راهنمایی کنید خودم پیداش میکنم ؟؟؟
با تشکر
و اما جابه جا کردن منوی "خانه" با "HTML" ...!?
1- آیتم های منو بصورت داینامیک تولید می شوند:
در این صورت داده های منو از جدولی در پایگاه داده خوانده و نمایش داده می شوند، در این حالت فیلدی با عنوان "Order" وجود دارد که ترتیب منوها را مشخص می کند، که با استفاده از آن می توان محل قرار گیری منوها در صفحه را تغییر داد.
2- آیتم های منو بصورت استاتیک تولید می شوند:
در این صورت کدی مانند زیر برای نمایش منو وجود دارد:<ul id='menu'>
<li><a href='#'>خانه</a></li>
<li><a href='#'>HTML</a></li>
<li><a href='#' >CSS</a></li>
<li><a href='#' >JavaScript</a></li>
<li><a href="#">PHP</a></li>
<li><a href='#'>SQL</a></li>
<li><a href='#'>ASP>NET</a></li>
</ul>
برای مثال اگر بخواهیم جای منوی "خانه" را با "HTML" عوض کنیم، فقط کافی است، liهای مربوطه را جابه جا کنیم.
bootstrap یک فریم ورک است. یک مجموعه ای از کلاس های css که از پیش تعریف شده اند تا شما بتوانید به راحتی سایت ها و قالب های خود را بصورتی که در بالا مطرح شد، طراحی کنید.
bootstrap را عده ای از برنامه نویسان سایت Twitter ساخته اند و آن را برای استفاده عموم قرار داده اند.
برای اطلاعات بیشتر به لینک روبرو مراجعه کنید: twitter.github.com/bootstrap/
فقط یه درخواست داشتم که ایمیل هم فرستادم ولی جوابی نگرفتم
اگه میشه ترجمه اموزش xml هم در سایتتون قرار بدید این اموزش ها در سایت w3school قرار داره
با تشکر از شما