مخطط رمز لصفحات التحديث التلقائي
-
22-09-2019 - |
سؤال
أرغب في التعبئة بمعلومات في الوقت الفعلي ، وهناك وظيفة قياسية جميلة أريد تكرارها:
يحدث ذلك هنا عندك عندما تكون في عرض واحد من الأسئلة ، وكتابة إجابتك ، وتنبيهًا يظهر من أعلى قائلاً "هناك 3 إجابات أخبار ، انقر لتظهر"
يحدث أيضًا على Twitter "هناك 5 تغريدات جديدة في هذا البحث: انقر للتحديث"
أنا على دراية بالشهر الخادم والرمز الجانبي للعميل ، وما أبحث عنه هو المخطط الأساسي (ولا حتى رمز PSUEDO ، ولكن ربما اللغة الإنجليزية البسيطة) لكيفية حدوث شيء من هذا القبيل.
هل هناك وظيفة cron على الخادم الذي يعمل كل دقيقة ، تطلق إشارة إلى جزء من Ajax الذي تم إجراؤه منذ فترة طويلة على الصفحة؟
هل الصفحة نفسها استطلاع خادم؟
أي وجميع الحلول موضع ترحيب. شكرًا!
المحلول
يمكنك تنفيذ ذلك باستخدام مكالمة Ajax تعمل على جانب العميل على فاصل منتظم باستخدام JavaScript setTimeout
طريقة. سيكون لديك وظيفة JavaScript التي تستدعي طريقة جانب الخادم الخاص بك والتي تتحقق مما إذا كان التحديث قد حدث ، ويعرض أي تحديث ، ثم يستدعي SetTimeout للاتصال بنفسه.
كود مزيف:
function updateCheck()
{
//make ajax call
//do something if any update has occurred
setTimeout("updateCheck()", 10000); //second param is in milliseconds
}
نصائح أخرى
من الجزء العلوي من رأسي ، سأقوم به عبر JavaScript - تعيين مهلة للتساؤل عن الخادم. هذا مجرد تخمين متعلم رغم ذلك.
يبدو أن هذا يستخدم تحديثًا دوريًا لتقديم طلب AJAX إلى عنوان URL مثل:
https://stackoverflow.com/posts/2307584/answer-activity-heartbeat
هذا يعيد نتيجة JSON:
{"Result":false,"Count":0}
Heres مثال على النتيجة عند وجود إجابة جديدة:
{"Result":true,"Count":1}