امروز : پنجشنبه، 23 اردیبهشت 1400

آپدیت html هنگام تغییر دیتابیس

تعداد بازدید: 45

بعضی مواقع لازم است تا بخشی از صفحه بدون آنکه کاربر رفرش کند به روز شود.
چند روش برای انجام این کار وجود دارد: long polling  و  short polling و web socket

short polling

دراین روش شما اساساً یک تایمر درست می کنید و از یک فایل که به بک اند متصل می شود، مثلاً php اطلاعات دریافت می کنید که داده های دیتابیس را هر چند ثانیه یا یک ثانیه خارج می کند و سپس داده ها را مقایسه می کنید تا ببینید داده ها به روز شده اند یا نه.

در این روش تعداد زیادی از درخواست ها هنگام ورود به سرور پردازش می شوند. ترافیک زیادی ایجاد می کند (از منابع استفاده زیادی می کند ، اما به محض ارسال پاسخ آنها را آزاد می کند).

از تابع setInterval جاوااسکریپت می توان برای این کار استفاده کرد.

long polling

این روش درخواست های کمتری ارسال می کند و ترجیح داده می شود زیرا فشار کمتری به سرور وارد می کند. فیسبوک از این روش استفاده می کند. در این فرآیند کاری که شما اساساً انجام می دهید این است که شما ازطریق فایل php درخواست می کنید و فایل php تا زمان بروزرسانی در پایگاه داده پاسخ نمی دهد بنابراین به جای درخواست ajax برای پرونده php هر چند ثانیه یکبار در هر دقیقه انجام می شود یا بنابراین فشار کمتری به سرور وارد می شود.

مثال:

<div id="analytics"></div>
<script>
var analytics = document.getElementById('analytics');
(function poll(){
    $.ajax({ url: "server", success: function(data){
        analytics.innerHTML = data;
    }, dataType: "json", complete: poll, timeout: 30000 });
})();
</script>

Web Socket

به طور کلی وب سوکت (Web Socket) یک پروتکل ارتباطی مداوم و دو طرفه از مرورگر کاربر به سرور است. ارتباط وب سوکتی به این صورت است که درخواست به صورت Handshake (ارتباط Handshake به ارتباط دو تلفن معروف است که با یکدیگر اطلاعات رد و بدل می‌کنند) از پروتکل HTTP کاربر به سمت سرور ارسال می‌شود تا ارتباط بین این دو دستگاه را پایدارتر کند. Web Socket از پروتکل کاملا متفاوت استفاده می‌کند که آن را در مقابل HTTP منحصر به فرد می‌کند. قبل از هر چیزی باید اول HTTP و Web socket را با یکدیگر مقایسه کنیم تا متوجه بشویم برنامه نویسی وب سوکت در PHP به چه کاری می‌آید.

سید خلیل حسینی
  • برنامه نویس بک اند پی اچ پی و لاراول
  • برنامه نویس فرانت اند
  • پلاگین نویس و طراح صفحات وردپرس با ویژوال کامپوزر
  • تجربه برنامه نویسی اندروید، فلاتر، سی شارپ، ویو جی اس و...
blog-author-image