AJAX Polling Frequency - للاستطلاع الطويل أم لا للاستطلاع الطويل؟

StackOverflow https://stackoverflow.com/questions/3842063

سؤال

أقوم بإنشاء مكون من صفحة ويب يحتاج إلى استطلاع ثابت لقاعدة البيانات.أستطيع أن أرى طريقتين مختلفتين لهذا، وأتساءل عما إذا كان أحدهما أفضل من الآخر، أو إذا كنت أفتقد خيارًا ثالثًا.

1) أرسل طلب AJAX كل ثانية أو ثانيتين للتحقق من وجود تحديثات.يعود كل طلب على الفور سواء كانت هناك بيانات جديدة أم لا.
2) أطلق طلب AJAX واحدًا لن يعود حتى يتلقى البيانات أو تنتهي المهلة.عند حدوث أي من تلك الأحداث، فإنه يطلق الطلب التالي.(أعتقد أن هذا يسمى الاقتراع الطويل؟)

سيكون عدد استعلامات قاعدة البيانات هو نفسه مع أي منهما، ولكن مع رقم 2 سيكون هناك عدد أقل من الطلبات التي يتم إطلاقها من المتصفح مما قد يؤدي إلى توفير النطاق الترددي وموارد العميل.بالنسبة للخادم، هل من الأفضل أن يكون لديك طلب PHP واحد يظل نشطًا ويتوقف بين الاستعلامات، أم أنه يتم تشغيله كل بضع ثوانٍ، ويستقصي قاعدة البيانات، ثم يتم إيقاف تشغيله؟أم أنه لا يوجد فرق وأنا أشدد على هذا الأمر كثيرًا؟

يحرر:أفترض أنني يجب أن أشير أيضًا إلى أن هذه أداة دردشة لتطبيق ويب أكبر.لن يؤدي التأخير الطفيف في الاتصال إلى قتل المستخدم، لأن الدردشة هي ميزة ثانوية.

هل كانت مفيدة؟

المحلول

سيتم توسيع نطاق الاقتراع الطويل بشكل أفضل (أي.تحميل خادم أقل) من الاستقصاء، مع توفير أوقات استجابة أفضل بكثير.

إذا قام المستلم بالاستقصاء، فسيكون متوسط ​​وقت الرحلة للرسالة هو نصف الفاصل الزمني للاستقصاء.

مع الاستقصاء الطويل، يكون الأمر فوريًا - ينتظر الخادم فقط إذا لم يكن هناك ما يقوله.

إذا كنت تقوم بمراسلة الدردشة، قم بإجراء استطلاع طويل؛إنه شيء قابل للاستخدام.

الجانب السلبي للاقتراع الطويل هو أن تنفيذه أكثر تعقيدًا؛ولكن الأمر ليس أكثر تعقيدًا، ويتم تنفيذه على نطاق واسع.لذلك، إذا لم تتمكن من استخدام إطار عمل جاهز لخادم الويب الذي تختاره، فيمكنك البدء في كتابة إطار عمل بشكل معقول وستتمكن من تشغيله.

نصائح أخرى

يمكنك أيضا النظر إلى WebSockets, ، جزء من أحدث المتصفحات (أو المحاكاة عبر أ ملف فلاش أنت تسقط على صفحتك)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top