Sự Khác Biệt Giữa Api Tìm Nạp Và Xmlhttprequest Là Gì, Hướng Dẫn Sử Dụng Javascript Xmlhttprequest Là Gì

XMLHttpRequestcó 5 readyStates, và tôi chỉ sử dụng 1 trong số chúng (cái cuối cùng, 4).

Bạn đang xem: Xmlhttprequest là gì

Những cái khác để làm gì và tôi có thể sử dụng chúng trong những ứng dụng thực tế nào?

Danh sách đầy đủ các readyStategiá trị là:

State Description0 The request is not initialized1 The request has been set up2 The request has been sent3 The request is in process4 The request is complete(từ https://www.w3schools.com/js/js_ajax_http_response.asp )

Trong thực tế, bạn hầu như không bao giờ sử dụng bất kỳ cái nào trong số chúng ngoại trừ 4 cái.

Một số triển khai XMLHttpRequest có thể cho phép bạn xem các phản hồi đã nhận được một phần vào responseTextthời điểm nào readyState==3, nhưng điều này không được hỗ trợ phổ biến và không nên dựa vào.

— Kieron nguồn
5
Các lỗi trong quá trình chuyển vẫn cập nhật readyState lên 4. Tuy nhiên, quá trình chuyển hoàn toàn bị gián đoạn sẽ đặt lại readyState về 0. Vì vậy, lỗi trong quá trình chuyển do chuyển hướng không thực sự là “lỗi” và bạn có thể chọn bỏ qua việc ghi nhật ký / báo cáo lỗi nếu readyState của xhr là 0. Nó hơi mong manh và quãng đường của bạn có thể thay đổi tùy thuộc vào việc ghi nhật ký mọi sự kiện / lỗi là “phải có” hay “tốt là có”. Nếu đó là sau này, bạn có thể đủ khả năng để mất sự kiện hiếm hoi mà có thể là một lỗi cùng readyState của 0.
— Greg Pettit
2
+1 tới
MattBianco để được tư vấn. Tôi cũng muốn nói thêm rằng Mạng nhà phát triển Mozilla MDN được cho là một trong những trang web tham khảo phổ biến và đáng tin cậy nhất hiện có cho mọi nhu cầu về JavaScript / HTML / CSS của bạn. Khi thực hiện tìm kiếm trên google, hãy thêm truy vấn của bạn với “mdn” và bạn sẽ đỡ đau đầu cho mình.
— DondeEstaMiCulo
GregPettit, chúng ta có thể sử dụng readystate 0 không, không có kết nối internet hoặc có bất kỳ lý do nào tồn tại trong đó “Yêu cầu không được khởi tạo”
— Vishal Sharma
4
Tôi không chắc,
vishalsharma – như tôi nhớ lại, trạng thái sẵn sàng là 0 miễn là yêu cầu không được khởi tạo. Sau đó, bất kỳ “hoàn thành” nào khác (do thành công hoặc do lỗi) sẽ cập nhật trạng thái sẵn sàng lên 4. Vì vậy, việc mất internet sau khi quá trình chuyển bắt đầu sẽ chuyển nó thành 4, không trở về 0. Nếu chưa bao giờ có internet khi chuyển. đã cố gắng, nó vẫn phải ở mức 0; nó sẽ chỉ chuyển sang 1 sau khi bắt tay.
— Greg Pettit
Lời giải thích cho readyState 2 là sai – hoặc ít nhất là hoàn toàn sai lệch. Shure yêu cầu đã được gửi, nhưng những trạng thái đó thực sự nói rằng tất cả các tiêu đề phản hồi cuối cùng đã được nhận.
— inta
32

câu trả lời của kieron chứa w3schools ref. mà không ai dựa vào, câu trả lời của bobince đưa ra liên kết, thực sự cho biết việc triển khai bản địa của IE,

vì vậy đây là tài liệu gốc được trích dẫn để hiểu đúng những gì readystate đại diện:

Đối tượng XMLHttpRequest có thể ở một số trạng thái. Thuộc tính readyState phải trả về trạng thái hiện tại, phải là một trong các giá trị sau:

UNSENT (giá trị số 0) Đối tượng đã được xây dựng.

Xem thêm: Khái Niệm Đồng Tiền Bitcoin, Giải Thích Dễ Hiểu Nhất Về Đồng Bitcoin

OPENED (giá trị số 1) Phương thức open () đã được gọi thành công. Trong trạng thái này, tiêu đề yêu cầu có thể được đặt bằng cách sử dụng setRequestHeader () và yêu cầu có thể được thực hiện bằng phương thức send ().

HEADERS_RECEIVED (giá trị số 2) Tất cả các chuyển hướng (nếu có) đã được tuân theo và tất cả các tiêu đề HTTP của phản hồi cuối cùng đã được nhận. Một số thành viên phản hồi của đối tượng hiện đã có sẵn.

LOADING (giá trị số 3) Đang nhận phần thân thực thể phản hồi.

XONG (giá trị số 4) Quá trình truyền dữ liệu đã hoàn tất hoặc đã xảy ra sự cố trong quá trình truyền (ví dụ: chuyển hướng vô hạn).

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *