PDA

View Full Version : سوال: نمایش آنلاین اطلاعات در قسمت مدیریت



Mahboubeh.M
پنج شنبه 12 آذر 1394, 17:07 عصر
سلام دوستان. وقت بخیر

من یک سایت برای فست فود مینویسم که در این سایت سیستم سفارش هم وجود داره. حالا من نمیدونم چطور باید قسمت مدیریت سفارشاتو بنویسم تا به محض وارد شدن یک سفارش جدید در قسمت مدیریت نمایش داده بشه.من برای این کار یک جدول در دیتابیس تعریف کردم که هر سفارش در جدول درج بشه. حالا در قسمت مدیریت روی این جدول یک select قرار دادم و گفتم نتیجه حاصل از ااین دستور نمایش داده بشه که درست نمایش میده ولی اگر رکورد جدیدی اضافه بشه تا وقتی این صفحه رفرش نشه رکوردهای جدید نمایش داده نمیشه و حالا من نمیدونم باید چکار کنم و نیاز به کمکتون دارم. خیلی خیلی ممنون میشم اگر راهنماییم کنین

Unique
پنج شنبه 12 آذر 1394, 18:35 عصر
روش های متعدد وجود داره :

۱ - از طریق یک timer بیاین و صفحه را refresh کنید.با setInterval
۲ - با استفاده از Long polling و ajax (http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery/) بیاین اطلاعات را به روز کنید.
۳ - از طریق HTML5 Web Sockets میتونید این کار را انجام بدین البته مرورگر های قدیمی پشتیبانی نمیشن و روی php هم خیلی خوب نمیشه کار کرد و باید daemon بنویسین ، توی این سناریو بهترین ابزار nodejs هستش.

us1234
پنج شنبه 12 آذر 1394, 20:01 عصر
با یک Ajax و تایمر هر 30 ثانیه دی بی را چک کن اگر چیزی جدید بود کل جدول را با همان Ajax لود کن و اصلا نیاز به ریفرش شدن صفحه هم ندارید

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

Mahboubeh.M
جمعه 13 آذر 1394, 11:38 صبح
ممنون
روش شما از نظر پیاده سازی خیلی راحته و برای من که تازه شروع بکار کردم عالیه. ولی میخواستم بدونم به نظرتون بهترین روش کدومه؟؟ از بین روش شما و سه روشی که دوست عزیز Unique در بالا گفتن.

Unique
جمعه 13 آذر 1394, 13:40 عصر
اصولی ترین روش استفاده از socket هستش. وقتی از timer و توابع setInterval و setTimeout استفاده میکنیم آخرش Delay داریم و ممکنه از سرور timeout بگیریم. اما معنیش این نیست که نمیشه و من خودم بار ها از همین دو تا بدون مشکل استفاده کرد. منعطفترین و مطمئن ترین روش از طریق timer روش Long Polling هست با setTimeout کار میکنه و نمونش را توی پست قبلی لینک گذاشتم.

socket فعلا خیلی خوب پشتیبانی نمیشه و php هم برای استفاده ازش کلا بهینه نیست اما آینده در دست HTML5 Web Sockets هستش.

us1234
جمعه 13 آذر 1394, 14:22 عصر
نمیدونم چرا اینقدر این موضوع را پیچیده فرض میکنید .

یک ajax و append ساده است :

http://jsfiddle.net/neerajkumarsingh/tqyn3/

برای امنیت هم سمت سرور چک کنید کسی که درخواست را پست میکنه حتما لاگین کرده باشد و کاربر معتبر باشه ...

Unique
جمعه 13 آذر 1394, 15:05 عصر
میدونم چرا اینقدر این موضوع را پیچیده فرض میکنید .
یک ajax و append ساده است

بحث اصلا قسمت درخواست و پر کردن table نیست. موضوع اینه که چطور وقتی اطلاعات جدیدی میاد جدول را بروز کنیم :

۱ - یا باید با setInterval یا setTimeout بستگی به تکنیک مورد نظر توی فواصل مثلا۱ دقیقه یا ۳۰ ثانیه جدول را بروز کنیم.
۲ - با استفاده از Web Sockets هر وقت اطلاعات جدید بیاد از طریق سرور به کلاینت ارسال بشه و همون موقع جدول بروز بشه.

موضوع روش بروزرسانی هست که دو تا روش بیشتر هم نداره و اصلا قرار نیست چیزی را پیچیده کنیم.