Tìm nạp dữ liệu xml trong javascript

Tôi muốn Lặp lại đầu ra của tìm nạp xml bên trong javascript, Cách tiếp cận mà tôi đang sử dụng không hiệu quả, có bất kỳ giải pháp thay thế nào không?

cho (để mục trong '{{getItemsData. kết quả. thực thể}}') {

bảng điều khiển. nhật ký (mục. abc_name);

Người ta nói rằng “Sự cần thiết là mẹ của mọi phát minh” và đó là điều đã thúc đẩy sự phát triển của Fetch API. Nhưng trước khi tìm hiểu sâu hơn về Fetch API, hãy đi sâu vào lịch sử đằng sau nó. Tôi biết tôi biết những gì đang diễn ra trong tâm trí bạn nhưng tôi sẽ nói ngắn gọn

AJAX

Trước khi khái niệm AJAX (JavaScript và XML không đồng bộ) được giới thiệu, để cập nhật một phần của trang, các trình duyệt tại thời điểm đó thường đưa ra yêu cầu về toàn bộ trang web tới máy chủ, sau khi máy chủ nhận được yêu cầu, nó được sử dụng để . Điều đó có nghĩa là ngay cả đối với một thay đổi nhỏ, trang đã được tải hoàn toàn. Đó là xấu phải không?
Sau khi AJAX bước vào thế giới internet, nó đã thay đổi cách cập nhật trang truyền thống. Với AJAX, các ứng dụng Web có thể gửi và truy xuất dữ liệu từ máy chủ một cách không đồng bộ (trong nền) mà không can thiệp vào hiển thị và hành vi của trang hiện có

XMLHttpRequest

Vào năm 2006, World Wide Web Consortium đã xuất bản một đặc tả Working Draft cho đối tượng XMLHttpRequest. Đối tượng XMLHttpRequest được sử dụng để truy xuất dữ liệu từ máy chủ không đồng bộ. Chờ một chút, ngươi vừa mới nói cái gì, ngươi nghe rõ ràng. Trong giai đoạn đầu, XMLHttpRequest được sử dụng để lấy dữ liệu XML trên HTTP do đó có tên. Nhưng ngày nay, nó có thể được sử dụng với các giao thức khác ngoài HTTP và nó có thể lấy dữ liệu không chỉ ở dạng XML mà còn cả AJAX0, AJAX1 hoặc văn bản thuần túy

Khái niệm ban đầu đằng sau đối tượng AJAX2 ban đầu được tạo bởi các nhà phát triển Outlook Web Access (của Microsoft)

Vì vậy, hãy thử với một ví dụ, chúng tôi sẽ thực hiện một yêu cầu đơn giản bằng cách sử dụng XMLHttpRequest, nhận phản hồi và phân tích nó thành AJAX4

Chúng tôi cần hai người nghe được thiết lập để xử lý các trường hợp thành công và lỗi và một cuộc gọi tới AJAX5 và AJAX6. Phản hồi từ máy chủ được lưu trữ trong biến AJAX7, được chuyển đổi thành đối tượng JavaScript bằng cách sử dụng AJAX8

Chúng tôi đã sử dụng XMLHttpRequest trong vài năm để yêu cầu dữ liệu khác với AJAX0 và đó là nơi bắt đầu có sự nhầm lẫn khi người mới bắt đầu cố gắng tìm hiểu cách tạo yêu cầu không đồng bộ trong JavaScript

Không có API đơn giản và gọn gàng hơn để thực hiện yêu cầu không đồng bộ sao? . Vì vậy, hãy quay trở lại hiện tại

Tìm về

Tìm nạp là một API JavaScript gốc mới, được hỗ trợ bởi hầu hết các trình duyệt hiện nay. Tìm nạp cho phép bạn thực hiện các yêu cầu mạng tương tự như XMLHttpRequest. Theo Tìm nạp tài liệu dành cho nhà phát triển của Google giúp dễ dàng thực hiện các yêu cầu không đồng bộ và xử lý các phản hồi tốt hơn so với XMLHttpRequest cũ hơn. Đó là một cải tiến so với API XMLHttpRequest. Sự khác biệt chính giữa Tìm nạp và XMLHttpRequest là API Tìm nạp sử dụng Lời hứa, do đó tránh được địa ngục gọi lại

Nếu bạn chưa quen với lời hứa thì hãy xem Lời hứa JavaScript. một lời giới thiệu. Bạn có thể sử dụng polyfill cho

Tìm nạp giao diện

Fetch API có các giao diện sau

  • AJAX5. Phương pháp AJAX6 được sử dụng để tìm nạp tài nguyên
  • AJAX7. Đại diện cho các tiêu đề phản hồi/yêu cầu, cho phép bạn truy vấn chúng và thực hiện các hành động khác nhau tùy thuộc vào kết quả
  • AJAX8. Đại diện cho một yêu cầu tài nguyên
  • AJAX9. Đại diện cho câu trả lời cho một yêu cầu

Thực hiện một yêu cầu bằng cách sử dụng tìm nạp ()

Hàm XMLHttpRequest0 có sẵn trong đối tượng XMLHttpRequest1 toàn cầu. Hàm XMLHttpRequest2 nhận một đối số bắt buộc, đường dẫn đến tài nguyên mà bạn muốn tìm nạp. Nó trả về một XMLHttpRequest3, cho dù nó có thành công hay không. Nếu yêu cầu thành công hàm XMLHttpRequest4 sẽ nhận đối tượng XMLHttpRequest5, nếu yêu cầu không thành công thì hàm XMLHttpRequest6 sẽ nhận đối tượng XMLHttpRequest7

Đối tượng phản hồi

Đoạn mã trên sử dụng API tìm nạp và thực hiện cuộc gọi tới GitHub để tìm nạp dữ liệu về người dùng. Khi lời hứa được giải quyết, chúng tôi nhận được một đối tượng XMLHttpRequest5. Nhưng chờ đã, nếu bạn thử đăng nhập đối tượng XMLHttpRequest9 trên bảng điều khiển, bạn sẽ thấy rằng đối tượng đó không có dữ liệu mà chúng tôi muốn. Đó là bởi vì đối tượng XMLHttpRequest9 có thông tin về chính phản hồi đó. Để thực sự lấy dữ liệu, chúng ta cần lấy phần thân của phản hồi

đối tượng phản hồi

Vì API Github mà chúng tôi đang sử dụng sẽ trả về AJAX0 cho chúng tôi, nên phản hồi được trả về sẽ có phương thức XMLHttpRequest2. Chúng ta chỉ cần gọi XMLHttpRequest2 trên biến phản hồi. Phương thức XMLHttpRequest2 trên một đối tượng XMLHttpRequest5 trả về một XMLHttpRequest3, vì vậy chúng ta cần xâu chuỗi trên một đối tượng XMLHttpRequest7 khác

Đã trích xuất đối tượng JSON từ phần thân Phản hồi

Đối tượng tiêu đề

Giao diện XMLHttpRequest8 cho phép bạn tạo đối tượng tiêu đề của riêng mình thông qua hàm tạo XMLHttpRequest9. Một đối tượng tiêu đề là một tập hợp các cặp tên-giá trị

Cung cấp các tùy chọn để tìm nạp()

Phương thức AJAX6 chấp nhận một tham số thứ hai tùy chọn, một đối tượng XMLHttpRequest1 cho phép bạn tùy chỉnh yêu cầu

đối tượng yêu cầu

Đối tượng XMLHttpRequest2 đại diện cho một yêu cầu tài nguyên. Thay vì chuyển một XMLHttpRequest3 tài nguyên vào lệnh gọi AJAX6, bạn có thể tạo một đối tượng yêu cầu bằng cách sử dụng hàm tạo XMLHttpRequest5 và chuyển đối tượng đó làm đối số cho XMLHttpRequest6 Bằng cách chuyển đối tượng Yêu cầu tới AJAX6, bạn có thể thực hiện các yêu cầu tùy chỉnh

Phần kết luận

Chắc chắn, XMLHttpRequest không được tạo ra cho những thứ chúng ta đang sử dụng ngày nay. Ngoài ra, API của nó hơi lộn xộn. API XMLHttpRequest9 giúp thực hiện các yêu cầu không đồng bộ dễ dàng hơn và xử lý các phản hồi tốt hơn so với việc sử dụng một XMLHttpRequest. XMLHttpRequest9 cho phép chúng tôi tạo API tốt hơn cho những thứ đơn giản, sử dụng các tính năng JavaScript hiện đại như XML2

Làm cách nào để tìm nạp dữ liệu từ tệp XML trong JavaScript?

Sử dụng JavaScript .
var strXML = ' .. .
tài liệu var;
nếu (cửa sổ. ActiveXObject)
doc = ActiveXObject mới('Microsoft. XMLDOM');
tài liệu. không đồng bộ = 'sai';
tài liệu. tảiXML(strXML);

Chúng tôi có thể sử dụng XML tìm nạp trong JavaScript không?

Bạn có thể sử dụng công cụ ưa thích của mình để tạo FetchXML . Bây giờ mã. Chúng tôi sẽ đặt FetchXML bên trong dấu tích phía sau để tạo chuỗi nhiều dòng trong JavaScript. Sau đó, chúng tôi sẽ mã hóa FetchXML và gửi nó tới Xrm.

Làm cách nào để tìm nạp dữ liệu từ XML?

Trang sử dụng đối tượng XMLHttpRequest (JavaScript) để tìm nạp tệp XML (mẫu. xml) sau đó phân tích cú pháp bằng JavaScript và tạo biểu đồ . Hàm phân tích cú pháp phản hồi XML và sau đó sử dụng dữ liệu để tạo biểu đồ được hiển thị bên dưới và được gọi là myXMLProcessor (đó là hàm gọi lại XMLHttpRequest).

Tìm nạp có hoạt động với XML không?

Nhưng ngày nay, nó có thể được sử dụng với các giao thức khác ngoài HTTP và nó có thể tìm nạp dữ liệu không chỉ ở dạng XML mà còn cả JSON , HTML hoặc văn bản thuần túy. The original concept behind the XMLHttpRequest object was originally created by the developers of Outlook Web Access (by Microsoft).