ما هو مقدار آمن من الوقت الذي يمكنني الانتظار قبل الاستجابة للمتصفح، دون الحصول على مهلة؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

أقوم بإجراء تطبيق دردشة يعمل مع الاقتراع الطويل لمحاكاة "دفع" من الخادم إلى العميل.

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

الآن، إذا مرت 30 ثانية ولم ترسل أي شيء، فأنا أرسل استجابة، قائلة أساسا "غير معجب"، وسيقوم العميل باستطلاع مرة أخرى.

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

هل قدم أي منكم طلبا طويلا للاقتراع؟
أي أفكار ما قد يكون أطول مهلة آمنة؟

شكرًا!

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

المحلول

يجب أن يكتشف المتصفح مهلة على XHR وتقديم طلب آخر.

تحديث:

اكتشاف المهلة على XHR معقدة في الواقع، لأنها ليست مدمجة لسبب ما. بالطبع سوف تحتاج أيضا إلى التعامل مع الردود 502/503، إلخ.

نصائح أخرى

تختلف مهلة القراءة بين المتصفحات. على سبيل المثال، هذه هي القيم الافتراضية ل IE،

Internet Explorer 4.0 and Internet Explorer 4.01 - 5 minutes
Internet Explorer 5.x and Internet Explorer 6.x - 60 minutes
Internet Explorer 7 and Internet Explorer 8 - 60 minutes

كما ترون، فإنه يحصل على عمل إضافي أكبر.

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

قد ترغب في قراءة ردي على هذا السؤال،

اقترع خادم HTTP من عميل J2ME

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

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