Skip to content

Commit

Permalink
Merge branch 'main' into 20240801-sourceCommit-1
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 authored Aug 4, 2024
2 parents 8e81673 + d81431e commit cae537e
Show file tree
Hide file tree
Showing 83 changed files with 1,951 additions and 552 deletions.
3 changes: 2 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ For guidelines relating to specific locales, we have locale-specific docs in sub
- [Japanese translation guide / 日本語翻訳ガイド](ja/README.md)
- [Korean translation guide / 한국 번역 지침](ko/README.md)

> **Note:** If you want to add a guide to document some specific guidelines for your locale and it does not already appear here, you are welcome to add one, or [talk to the locale teams](https://github.com/mdn/translated-content/blob/main/PEERS_GUIDELINES.md#review-teams) about it.
> [!NOTE]
> If you want to add a guide to document some specific guidelines for your locale and it does not already appear here, you are welcome to add one, or [talk to the locale teams](https://github.com/mdn/translated-content/blob/main/PEERS_GUIDELINES.md#review-teams) about it.
## Do not copy all front matter properties from English pages

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ En caso de querer escapar una comilla o tilde invertida en una plantilla literal

Los caracteres de fin de línea encontrados forman parte de la plantilla literal.

Utilizando cadenas de caracteres normales, sería necesario utilizar la siguiente sintaxes para producir cadenas de más de una línea:
Utilizando cadenas de caracteres normales, sería necesario utilizar la siguiente sintaxis para producir cadenas de más de una línea:

```js
console.log("línea 1 de cadena de texto\n" + "línea 2 de cadena de texto");
Expand Down
1 change: 0 additions & 1 deletion files/ja/_redirects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2379,7 +2379,6 @@
/ja/docs/Security/混在コンテンツ /ja/docs/Web/Security/Mixed_content
/ja/docs/Server-sent_events /ja/docs/Web/API/Server-sent_events
/ja/docs/Server-sent_events/Using_server-sent_events /ja/docs/Web/API/Server-sent_events/Using_server-sent_events
/ja/docs/Setting_up_extension_development_environment /ja/docs/orphaned/Setting_up_extension_development_environment
/ja/docs/The_DOM_and_JavaScript /ja/docs/Web/JavaScript/JavaScript_technologies_overview
/ja/docs/The_Importance_of_Correct_HTML_Commenting /ja/docs/orphaned/The_Importance_of_Correct_HTML_Commenting
/ja/docs/The_X-Frame-Options_response_header /ja/docs/Web/HTTP/Headers/X-Frame-Options
Expand Down
4 changes: 0 additions & 4 deletions files/ja/_wikihistory.json
Original file line number Diff line number Diff line change
Expand Up @@ -30404,10 +30404,6 @@
"modified": "2019-03-24T00:06:00.366Z",
"contributors": ["ethertank", "Potappo"]
},
"orphaned/Setting_up_extension_development_environment": {
"modified": "2019-03-23T23:54:13.028Z",
"contributors": ["K.Nakamura", "teoli", "Mgjbot", "Shoot"]
},
"orphaned/The_Importance_of_Correct_HTML_Commenting": {
"modified": "2019-03-23T23:53:28.601Z",
"contributors": ["SphinxKnight", "teoli", "Mgjbot", "Kohei"]
Expand Down
29 changes: 16 additions & 13 deletions files/ja/glossary/callback_function/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,30 @@ l10n:

{{GlossarySidebar}}

コールバック関数とは、引数として他の関数に渡され、外側の関数の中で呼び出されて、何らかのルーチンやアクションを完了させる関数のことです。
**コールバック関数**、引数として他の関数に渡され、外側の関数の中で呼び出されて、何らかのルーチンやアクションを完了させる関数のことです。

簡単な例を以下に示します。
コールバックベースの API の利用者は、API に渡す関数を書きます。API の提供者(_caller_ と呼ばれる)は関数を受け取り、呼び出し側の本体内のある時点で関数をコールバック(実行)します。呼び出し側はコールバック関数に正しい引数を渡す責任があります。また、呼び出し側はコールバック関数からの特定のな返値を期待することがあり、呼び出し側のさらなる動作を指示するために使用します。

コールバックの呼び出され方には、同期コールバックと非同期コールバックの 2 つの方法があります。同期コールバックは、外部関数の呼び出しの直後に呼び出され、非同期タスクは介在しません。一方、非同期コールバックは、{{glossary("asynchronous", "非同期")}}処理が完了した後のある時点で呼び出されます。

コールバックが同期的に呼び出されるのか、非同期的に呼び出されるのかを理解することは、 副作用を分析する際に具体的な意味があります。次の例を見てください。

```js
function greeting(name) {
alert(`Hello, ${name}`);
}
let value = 1;

function processUserInput(callback) {
const name = prompt("Please enter your name.");
callback(name);
}
doSomething(() => {
value = 2;
});

processUserInput(greeting);
console.log(value);
```

上記の例はすぐに実行される{{glossary("synchronous", "同期型")}}コールバックです。
もし `doSomething` がコールバックを同期的に呼び出すのであれば、`value = 2` が同期的に実行されるので、最後の文は `2` をログ出力します。もしコールバックが非同期的であれば、`value = 2` が実行されるのは `console.log` 文の後なので、最後の文は `1` をログ出力します。

同期コールバックの例としては、{{jsxref("Array.prototype.map()")}} や {{jsxref("Array.prototype.forEach()")}} などに渡されるコールバックが挙げられます。非同期コールバックの例としては、[`setTimeout()`](/ja/docs/Web/API/setTimeout) や {{jsxref("Promise.prototype.then()")}} に渡すコールバックがあります。

コールバックは{{glossary("asynchronous", "非同期")}}操作が完了した後に続いてコードが実行されることがよくあります。これを非同期コールバックといいます。コールバック関数の良い例は、プロミスが履行されたり拒否されたりした後に連鎖される [`.then()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) ブロックの中で実行されるものです。この構造は [`fetch()`](/ja/docs/Web/API/fetch)のような最近の Web API で良く使われています
[プロミスの使用](/ja/docs/Web/JavaScript/Guide/Using_promises#タイミング)ガイドには、非同期コールバックのタイミングについての詳しい情報があります

## 関連情報

- Wikipedia の[コールバック](<https://ja.wikipedia.org/wiki/コールバック_(情報工学)>)
- [コールバック](<https://ja.wikipedia.org/wiki/コールバック_(情報工学)>)(ウィキペディア)
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: クライアント側ストレージ
slug: Learn/JavaScript/Client-side_web_APIs/Client-side_storage
l10n:
sourceCommit: 1b094710cd2816a6669ce616b6f56d0a5b25e6ad
sourceCommit: bc0d0d1ef796435e969f6d65c7e5d3c08f4023aa
---

{{LearnSidebar}}
Expand All @@ -28,9 +28,9 @@ l10n:
</td>
</tr>
<tr>
<th scope="row">目標:</th>
<th scope="row">目的:</th>
<td>
アプリケーションデータを格納するために、クライアント側ストレージ API を使用する方法について学ぶ
アプリケーションデータを格納するために、クライアント側ストレージ API を使用する方法について学ぶこと
</td>
</tr>
</tbody>
Expand Down Expand Up @@ -585,9 +585,9 @@ function deleteItem(e) {
}
```

3. 以下のスニペットは、`fetchVideoFromNetwork()` 内から引用したものです。ここでは、2 つの別々の {{domxref("fetch()")}} 要求を用いて MP4 版と WebM 版の動画を読み込んでいます。次に {{domxref("Response.blob()")}} メソッドを使用してそれぞれのレスポンスの本文を blob として抽出し、後で格納したり表示したりできる動画のオブジェクト表現を得ています。
3. 以下のスニペットは、`fetchVideoFromNetwork()` 内から引用したものです。ここでは、2 つの別々の {{domxref("Window/fetch", "fetch()")}} リクエストを用いて MP4 版と WebM 版の動画を読み込んでいます。次に {{domxref("Response.blob()")}} メソッドを使用してそれぞれのレスポンスの本文を blob として抽出し、後で格納したり表示したりできる動画のオブジェクト表現を得ています。

しかし、ここで問題があります。これらの二つの要求はどちらも非同期的なのですが、双方のプロミスが履行された (fulfilled) 場合にだけ動画を表示もしくは保存しようと試みたいのです。幸い、そうした問題を扱う組み込みメソッドがあります。すなわち {{jsxref("Promise.all()")}} です。これは一つの引数 — 成立したかどうかを調べたい個々のプロミスすべてに対する参照を配列に入れたもの — をとり、これ自体がプロミスに基づいています。
しかし、ここで問題があります。これらの 2 つのリクエストはどちらも非同期的なのですが、双方のプロミスが履行された (fulfilled) 場合にだけ動画を表示もしくは保存しようと試みたいのです。幸い、そうした問題を扱う組み込みメソッドがあります。すなわち {{jsxref("Promise.all()")}} です。これは一つの引数 — 成立したかどうかを調べたい個々のプロミスすべてに対する参照を配列に入れたもの — をとり、これ自体がプロミスに基づいています。

このプロミスの `then()` ハンドラー内で、先ほどと同様に `displayVideo()` 関数を呼び出して動画を UI に表示し、さらに `storeVideo()` 関数を呼び出して動画をデータベース内に格納しています。

Expand Down Expand Up @@ -737,7 +737,7 @@ self.addEventListener("install", (e) => {

このブロックの中では {{domxref("CacheStorage.match()")}} を使用して、一致するリクエスト(すなわち URL に一致する)がいずれかのキャッシュで得られるかどうかを調べています。このプロミスは、一致するものが得られた場合は一致するレスポンスで履行され、そうでない場合は `undefined` となります。

一致するものが見つかった場合、それを独自のレスポンスとして返します。そうでない場合は、ネットワークからのレスポンスを [fetch()](/ja/docs/Web/API/fetch) して、代わりにそれを返します。
一致するものが見つかった場合、それを独自のレスポンスとして返します。そうでない場合は、ネットワークからのレスポンスを [fetch()](/ja/docs/Web/API/Window/fetch) して、代わりにそれを返します。

```js
self.addEventListener("fetch", (e) => {
Expand All @@ -764,7 +764,7 @@ self.addEventListener("fetch", (e) => {

## まとめ

これで終わりです。クライアント側での保存の技術についてのこの概要を、皆さんが有用だと思ってくださったのであれば良いな、と望んでいます
これで終わりです。クライアント側ストレージ技術の概要が有益なものであったことを期待しています

## 関連情報

Expand Down
Loading

0 comments on commit cae537e

Please sign in to comment.