ماذا تعني حالات الاستعداد المختلفة في XMLHttpRequest، وكيف يمكنني استخدامها؟

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

سؤال

XMLHttpRequest لديه 5 readyStates، وأنا أستخدم واحدًا منهم فقط (الأخير، 4).

ما فائدة الآخرين، وما التطبيقات العملية التي يمكنني استخدامها فيها؟

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

المحلول

وقائمة كاملة من القيم readyState هي:

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

و(من https://www.w3schools.com/js/js_ajax_http_response.asp)

في ممارسة كنت تقريبا أبدا استخدام أي منها باستثناء 4.

بعض تطبيقات مدعوم قد تمكنك من رؤية الردود الواردة جزئيا في responseText عندما readyState==3، ولكن هذا لا يتم اعتماد عالميا، وينبغي عدم الاعتماد عليها.

نصائح أخرى

كيرون الصورة الجواب تحتوي w3schools المرجع. التي لا أحد يعتمد، bobince الصورة الجواب يعطي الارتباط، الذي يحكي الواقع تنفيذ الأصلي من IE،

وحتى هنا هو الوثائق الأصلية نقلت إلى فهم بحق ما ReadyState عن يمثل:

<اقتباس فقرة>   

والكائن مدعوم يمكن أن يكون في عدة ولايات. السمة ReadyState عن يجب أن يعود الوضع الحالي، والتي يجب أن تكون واحدة من القيم التالية:

     

وغير المرسلة (قيمة رقمية 0)
     وقد تم بناء الكائن.

     

وفتح (قيمة رقمية 1)
     تم استدعاء الطريقة المفتوحة () بنجاح. أثناء يمكن تعيين هذه الدولة طلب رؤوس باستخدام setRequestHeader () وطلب يمكن أن تكون مصنوعة باستخدام طريقة الإرسال ().

     

وHEADERS_RECEIVED (قيمة رقمية 2)
     تم اتباع جميع الموجهات (إن وجدت)، وقد تلقى جميع رؤوس HTTP من الرد النهائي. يتوفر الآن عدد من أعضاء استجابة للكائن.

     

وLOADING (قيمة رقمية 3)
     يتم تلقي نص الكيان استجابة.

     

وحررت (قيمة رقمية 4)
     تم الانتهاء من نقل البيانات أو ما حدث من خطأ أثناء نقل (مثل الموجهات لانهائية).

يرجى قراءة هنا: W3C كسبلايناتيون من ReadyState عن

الأصل ثائق نهائية

و0، 1 و2 تتبع فقط كم من الطرق اللازمة لتقديم طلب كنت قد دعا حتى الآن.

و3 يخبرك أن استجابة الخادم قد بدأت تأتي في، ولكن عندما كنت تستخدم الكائن XMLHttpRequest من صفحة ويب هناك شيء تقريبا (*) يمكنك القيام به مع هذه المعلومات، منذ لم يكن لديك الوصول إلى الخصائص الموسعة التي تسمح لك لقراءة بيانات جزئية.

وReadyState عن 4 هو الوحيد الذي يحمل أي معنى.

و(*: حول استخدام تصور الوحيد الذي يمكنني أن أفكر لفحص للReadyState عن 3 هو أنه يشير بعض شكل من أشكال الحياة في نهاية الخدمة، لذلك يمكن أن ربما زيادة مقدار الوقت الذي انتظر ردا كاملا عند الحصول عليها).

وonreadystatechange المخازن وظيفة (أو اسم وظيفة) ليتم استدعاؤها تلقائيا في كل مرة تتغير الخاصية readyState ReadyState عن حاصل حالة مدعوم. التغييرات 0-4:

و0: طلب لم يتم تهيئة

1: إنشاء اتصال الخادم

2: طلب وارد

و3: طلب معالجة

و4: طلب الانتهاء والاستجابة جاهز

والحالة 200: "OK"

404: الصفحة غير موجودة

  • 0 :تم إنشاء عميل UNSENT.open() لم يتم استدعاؤها بعد.
  • 1 :تم استدعاء OPENED open().
  • 2 :تم استدعاء Headers_Received Send () ، وتتوفر الرؤوس والحالة.
  • 3 :جاري التحميل؛يحتوي نص الاستجابة على بيانات جزئية.
  • 4 :DONE اكتملت العملية.

(من https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)

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