لماذا لا يتم تحديث التنبيهات تلقائيا، بدلا من اعادة تحميل الصفحة ؟

السلام عليكم،

قمت بالتسجيل في الموقوع منذ 3 ايام ، و اكثر خاصية لم افهم سبب عدم وجودها - بالرغم من امكانية تطبيقها بسهولة - هي خاصية تحديث التنبيهات تلقائيا (real time) مثل ما يحدث في استاك اوفر فلو او فيسبوك او غيره

و شكرا

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

  • عمل طلبات تلقائية للخادم تستهلك موارد الخادم في حال كان عدد الزوار كبير.

  • عدد الطلبات الكلي للتنبيهات في الدقيقة = عدد الزوار الآن * عدد الطلبات في الدقيقة

  • مثال:

يتم إرسال طلب للخادم كل 5 ثوان أي 12 طلب في الدقيقة وموجود الآن 1000 شخص يتصفح الموقع.

عدد طلبات التنبيهات الكلي في الدقيقة = 12 * 1000 = 12000 طلب في الدقيقة

هذا طبعاً بخلاف الطلبات الأخرى للموقع

  • طبعاً هنا عوامل أخرى تؤثر في زمن الطلب كطبيعة الإستعلام وعددها، ونوع وقوة الخادم.

  • هذا مجرد تصور فلا أعلم ما هي إمكانيات الخادم الذي يعمل عليه وما هو عدد الزوار، وهل الإشكاليه متعلقه بهذا الأمر أم لا.

عادةً لا تتم العملية بهذه الطريقة, بل يتم استخدام web socket والتي تبقي الاتصال مفتوح بين الخادم والمتصفح, ويتم ارسال الاشعارات من الخادم الى المتصفح فقط حال ورودها.

اجل ادركت ذلك،

و لكن في جزئية الجافا اسكربت (في التعليق السابق لي ) كنت اقصد تغيير قمة الزمن في تاريخ المنشور ليس الا

مثلا في مكان "قبل ساعة و53 دقيقة" ما المانع ان تزيد قيمة الدقيقة من جانب المستخدم دون تدخل من السيرفر

  • شكراً :) سأطلع أكثر حول الـsockets

في هذا الحال يتم استخدام socket .

  • لم أستخدم الـ socket ولا أعلم ماهية عمله، هل من إيضاح لطريقة التعامل مع الطلبات عبر الـ socket.
  • محمد أوفى وزاد، مقال رائع :)

اوافقك في ذلك ، لكن لا اظن انها ستستعصى على مطوري ارابيا ان يقومو بذلك (طبعا هم ادرى بمواردهم ).

هناك شي اخر و في قمة البساطة ، لماذا لا تزيد قيمة الزمن في تاريخ المنشور الا عند اعادة التحميل ايضا ؟؟

لا اظن ان عمل عداد في جانب المستخدم (client) بدالة جافا اسكربت ستستهلك اي موارد من المخدم، هذا شيء بسيط جدا جدا و لكنه مفيد في بعض الاحيان.

  • الأمر لا يتعلق بصعوبة أو سهولة البرمجة، فالأمر بسيط ولكن هناك بالتأكيد أسباب غير هذا.

في حال تطبيق التحديثات التلقائية، لا يوجد طلبات للخادم، الخادم هو من سيرسل التحديث للمستخدم في حال حدوثه (Push notification)

the request for a given transaction is initiated by the publisher or central server

  • هذا في حالة إستخدام الإتصال المتصل عبر الـ socket كما تفضل الأخوه بذكره، أما الطريقة التي تحدثت عنها تستخدم إرسال طلبات دورية من خلال المتصفح لإختبار وجود تحديثات جديدة.

لا يوجد أي طلبات يرسلها المتصفح، من يقوم بالإرسال هو الخادم. WebSocket تطبيق من تطبيقات الـPush technology

  • أخي كنت أتحدث عن برتكول HTTP وليس Web Socket، ففي حال إستخدام برتكول HTTP عليك إرسال طلبات دورية عبر POST أو GET من المتصفح للتأكد من وجود تحديثات.

اجل انا ايضا طرحت نفس السؤال في خمسات قبل ادراج خاصية (real time) وفي وقت قصير تم ادراج الخاصية والحمد لله

أمل ان يستفيق مطوري أريبيا ويخطوا خطوة التطويرات المناسبة لأريبيا 2015 .

أمل ان يستفيق مطوري أريبيا ويخطوا خطوة التطويرات المناسبة لأريبيا 2015 .

راجع:

لم أجد فيه شيء مهم :(

لانهم ربما لم يستخدمو تقنية ajax في موقعهم

لا باس بإعادة التحميل ولا اجدها مشكلة والموقع اصلا غير ربحي بحسب ما رأيت والقائمين على الموقع لهم الشكر بصراحة

لا باس بإعادة التحميل ولا اجدها مشكلة والموقعلا باس بإعادة التحميل ولا اجدها مشكلة والموقع

اعادة التحميل ليس بمشكلة ، الا ان كانت شبكة الانترنت عندك سيئة نوعا ما مثلي ;) .

اصلا غير ربحي بحسب ما رأيت والقائمين على الموقع لهم الشكر بصراحة

مطوري اربييا لهم مني كل التقدير و الاحترام و الشكر ، و لولا اهتمامي بامر تطوير الموقع لما تطرقت لهذه النقطة.

الموقع بحاجة الى كثير من التحديثات، لكن الموقع منذ انطلاقته الى اليوم لم نرى فيه اي تحديثات، اتمنى ان نرى تحديثات ذات قيمة في الايام القليلة القادمة !!

-2

هناك الكثير للعمل في نظام التنبيهات داخل أرابيا