ホームページ  >  記事  >  ウェブフロントエンド  >  フロントエンド開発における JavaScript 非同期リクエストとデータ処理の経験の概要

フロントエンド開発における JavaScript 非同期リクエストとデータ処理の経験の概要

王林
王林オリジナル
2023-11-03 13:16:551307ブラウズ

フロントエンド開発における JavaScript 非同期リクエストとデータ処理の経験の概要

フロントエンド開発における JavaScript の非同期リクエストとデータ処理の概要を体験してください

フロントエンド開発において、JavaScript は非常に重要な言語です。ページ インタラクティブで動的な効果、およびデータは、非同期リクエストを通じて取得および処理することもできます。この記事では、非同期リクエストとデータを扱う際の経験とヒントをまとめます。

1. 非同期リクエストには XMLHttpRequest オブジェクトを使用する
XMLHttpRequest オブジェクトは、HTTP リクエストを送受信するための JavaScript の標準メソッドです。非同期リクエストを処理する場合、このオブジェクトを通じてリクエストを送信し、そのステータスの変化を監視できます。以下は、XMLHttpRequest オブジェクトを使用して GET リクエストを送信する簡単な例です。

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/api/data", true);
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    var data = JSON.parse(xhr.responseText);
    // 处理返回的数据
  }
};
xhr.send();

上記のコードでは、まず XMLHttpRequest オブジェクトを作成し、次に open メソッドを呼び出してリクエスト メソッドと URL を設定します。ブール値で渡す true の値は、リクエストが非同期で送信されることを示します。次に、onreadystatechange イベント リスナーを使用して、リクエストのステータスの変化を監視します。リクエストのreadyStateが4でステータスコードが200の場合、リクエストが成功したことを意味し、返されたデータはresponseText属性を通じて取得できます。次に、JSON.parse メソッドを通じて返されたデータを JavaScript オブジェクトに変換し、さらに処理を実行します。

2. 非同期リクエストに Fetch API を使用する
XMLHttpRequest オブジェクトに加えて、最新のブラウザでは、非同期リクエストを処理するための新しい Fetch API も提供されています。 Fetch API は、より強力で柔軟な機能を提供し、Promise とよりわかりやすい構文をサポートします。以下は、Fetch API を使用して GET リクエストを送信する例です。

fetch("http://example.com/api/data")
  .then(function(response) {
    if (response.ok) {
      return response.json();
    } else {
      throw new Error("请求失败");
    }
  })
  .then(function(data) {
    // 处理返回的数据
  })
  .catch(function(error) {
    // 处理异常
  });

上記のコードでは、fetch メソッドを呼び出し、リクエストされた URL を渡します。 fetch メソッドは Promise オブジェクトを返し、リクエストが成功したときの戻りデータは then メソッドを通じて処理できます。 then メソッドでは、まずリクエストのステータス コードが 200 であるかどうかを判断します。200 である場合は、response.json メソッドを呼び出して、返されたデータを JavaScript オブジェクトに変換します。次に、返されたデータを then メソッドでさらに処理できます。リクエストが失敗すると例外がスローされますが、これは catch メソッドで処理できます。

3. データ処理テクニック
非同期リクエストによって返されたデータを処理する場合、コードの読みやすさとパフォーマンスを向上させるいくつかのテクニックがあります:

  1. テンプレート文字列を使用する
    テンプレート文字列は、変数と式を含めることができる文字列リテラルです。返されたデータを処理するときに、テンプレート文字列を使用して、HTML またはその他の形式のデータを結合できます。例:
var name = "John";
var age = 30;
var html = `<div>Name: ${name}</div><div>Age: ${age}</div>`;
  1. アロー関数の使用
    アロー関数は、ES6 で導入された関数を定義する新しい方法です。関数をより簡潔に定義し、現在の関数の this 値を継承できます。コンテクスト。 。返されたデータを処理するとき、アロー関数を使用してデータの走査とマッピングを処理できます。例:
var users = [{ name: "John", age: 30 }, { name: "Mary", age: 25 }];
var names = users.map(user => user.name);
  1. コールバック関数のネストが深すぎることは避けてください
    コールバック関数をネストしすぎると、コードが読みにくくなり、保守しにくくなります。非同期リクエストを処理するときは、Promise または async/await を使用して、コールバック関数のネストが深くなりすぎないようにすることができます。例:
fetch("http://example.com/api/data")
  .then(function(response) {
    if (response.ok) {
      return response.json();
    } else {
      throw new Error("请求失败");
    }
  })
  .then(function(data) {
    return data.filter(user => user.age > 18);
  })
  .then(function(filteredData) {
    // 处理过滤后的数据
  })
  .catch(function(error) {
    // 处理异常
  });

上記のコードでは、複数のコールバック関数をネストする代わりに、複数の then メソッドを通じてデータを連続して処理します。

4. 結論
フロントエンド開発において、JavaScript の非同期リクエストとデータ処理は重要な部分です。 XMLHttpRequest オブジェクトと Fetch API の使い方をマスターし、いくつかのデータ処理テクニックを適用することで、開発効率を向上させ、ユーザー エクスペリエンスを向上させることができます。上記の経験の概要が、フロントエンド開発における非同期リクエストとデータ処理に役立つことを願っています。

以上がフロントエンド開発における JavaScript 非同期リクエストとデータ処理の経験の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。