لماذا ينتقل طلب Ajax الخاص بي مباشرة من الحالة 1 إلى 4؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

أقوم بتقديم طلب إلى برنامج CGI باستخدام AJAX.الرد يرسل لي طول المحتوى.هدفي هو عرض تقدم الاستجابة ديناميكيًا.لذلك أحتاج إلى بدء وظيفة على قيمة onreadystate لكائن XHR لتكون 3.ولكن يبدو أن الطلب لا يحصل على رقم الحالة هذا.وبدلاً من ذلك ينتقل مباشرةً من الحالة 1 إلى الحالة 4.ماذا ينقصني؟

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

المحلول

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

نصائح أخرى

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

  1. يفتح المتصفح الاتصال، ويضبط حالة الاستعداد على 1
  2. يرسل المتصفح الحزمة إلى عملية الخادم
  3. تتلقى عملية الخادم الحزمة، وتحصل على الأولوية من المجدول
  4. يقوم الخادم بإرجاع البيانات إلى المتصفح، ويتيح التحكم في وحدة المعالجة المركزية.يستمر المتصفح في التنفيذ.
  5. يرى المتصفح أن جميع البيانات قد تم استلامها، ويقوم بتعيين ReadyState على 4.

قصة طويلة قصيرة:لا تعتمد على الدخول في حالة "الاستلام".

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