جلب الأشعارات

السلام عليكم
لدي نظام اشعارات جداً بسيط
Model
تحتوي على حقل body
وحقل user

اريد من خلال jQuery فقط جلب اخر الاشعارات للمستخدم الغير مقروءة طبعاً
والامر بسيط

خصصت method لجلب العناصر المطلوبة
واعدتها ك json

عملت اتصال من jQuery وجلبت البيانات وكل شيء يعمل

الان ما هي الطريقة الامثل لمعرفة انه تم انشاء عنصر اشعارات جديد من خلال jQuery

هل المنطق اترك jQuery تعمل اتصال كل ٥ ثواني مثلاً لجلب الاشعارات لو وجدت

ام هناك طريق لانشاء url جديدة في الموقع يتم عمل push للبيانات عليها وال jQuery تستمع لهذا الرابط لو حدث في اي تغيير يتم تنفيذ
ميثود js الخاصة بجلب الاشعارات ك json

الميثود تعمل لكن كيف اضبط وقت عملها
وكيف ستستمع للسيرفر ان حدث اي تغيير جديد

لم استخدم اي مكاتب اخرى فقط اريد الجهاز الاتصال مع هذا الرابط والاستماع له دون اي تعقيدات

4 Likes

وعليكم السلام ورحمه الله

هل المنطق اترك jQuery تعمل اتصال كل ٥ ثواني مثلاً لجلب الاشعارات لو وجدت

يبدوا غير منطقي صحيح ولكن هكذا تجري الأمور، ما وصفته أنت اعلاة هو ما يسمى بالـ Ajax Polling أو الـ Short Polling حيث تقوم فية في كل نصف ثانية مثلاً بإرسال طلب ويجيك الجواب من السيرفر بأن هناك تحديثات او لا يوجد تحديثات.

في الجانب الأخر هناك شئ أفضل منه وهو ما يسمى بالـ Long Polling وهنا لا يختلف كثيراً عن الطريقة أعلاة وانما الفرق الوحيد هو انك ستقوم بإرسال طلب للسيرفر ولكن السيرفر ما راح يرد عليك وراح يحافظ على الإتصال لحين ما توجد تحديثات جديدة فحينها سيرد عليك وأنت ستقوم بإرسال طلب جديد.

الفرق هو انك لن ترسل طلب وتحصل على اجابة فارغة ومن ثم ترسل طلب جديد وهكذا بل سترسل طلب واحد وتنتظر جواب عند توافر تحديثات بمعنى ان عدد الطلبات ستقل

والخيار الثالث هو الـ Websocket وهو بروتوكول من خلالة تفتح two-ways communcation session بين السيرفر والكلاينت بمعنى ان هناك بورت اخر تفتحة لإرسال وإستقبال ال Data بدون Polling.

ايهم تستخدم؟
الذي يناسبك اعمل بحث لايجابيات وسلبيات كل طريقة وشوف اي طريقة هي الأنسب لك، وبشكل شخصي حسب ما طرحته بخصوص مشروعك انصحك تروح مع الـ Ajax polling

4 Likes