سؤال

أحاول أن أفهم أين يمكنني تكوين مهلة طلب لجميع الطلبات التي تصل إلى خدمة لي (أو كل servlets)؟ هل هذا ، كما أعتقد ، خاصية حاوية؟ أيضا ، كيف يؤثر هذا على المتصفحات المختلفة؟ هل يمتثلون جميعًا للمعلمة التي تمليها الحاوية؟ أو ربما لا يكون وقت مهلة الطلب حتى شيئًا يمكنني التحكم فيه ويقرر كل متصفح ذلك بمفرده؟ (فقط لأكون واضحًا ، لا أتحدث عن مهلة الجلسة)

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

المحلول

يتم تحديد المهلة من العميل (أي كم من الوقت ينتظر استجابة لطلب HTTP) في العميل. ل IE ، انظر هذه, ، و Firefox انظر هذه.

لا يمكنك التحكم في هذه المهلة من الخادم.

نصائح أخرى

على الرغم من أنه لا يمكنك التحكم في مهلة العميل ، إلا أنه يمكنك جعل الخادم نفاد صبره :) على سبيل المثال ، على Tomcat ، يمكنك القيام بذلك في الموصل الخاص بك ،

<Connector port="8080"  
  ...
  connectionTimeout ="5000"
  disableUploadTimeout="false" />

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

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

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

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