Skip to content

Commit

Permalink
2024/03/06 時点の英語版に基づき更新
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Aug 6, 2024
1 parent ff8657e commit a7268ba
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 120 deletions.
64 changes: 31 additions & 33 deletions files/ja/web/api/idbcursor/advance/index.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
---
title: IDBCursor.advance()
title: "IDBCursor: advance() メソッド"
short-title: advance()
slug: Web/API/IDBCursor/advance
l10n:
sourceCommit: 2c641e08878722bf29fb784d58c61873ce4a133a
---

{{APIRef("IndexedDB")}}
{{APIRef("IndexedDB")}} {{AvailableInWorkers}}

{{domxref("IDBCursor")}} インターフェイスの **`advance()`** メソッドはカーソルが位置を前進させる回数をセットします。

{{AvailableInWorkers}}
**`advance()`** は {{domxref("IDBCursor")}} インターフェイスのメソッドで、このカーソルが位置を前進させる回数を設定します。

## 構文

```js-nolint
cursor.advance(count);
advance(count)
```

### 引数
Expand All @@ -22,43 +23,40 @@ cursor.advance(count);

### 返値

{{jsxref('undefined')}}
なし ({{jsxref("undefined")}})。

### 例外

このメソッドは次のいずれかの {{domxref("DOMException")}} を発生することがあります:
このメソッドは次のいずれかの {{domxref("DOMException")}} を発生することがあります

| 例外 | 説明 |
| -------------------------- | --------------------------------------------------------- |
| `TransactionInactiveError` | この `IDBCursor` のトランザクションは活性化していません。 |
| `TypeError` | `count` パラメーターに渡された値がゼロや負の数です。 |
| `InvalidStateError` | カーソルは現在繰り返し中か、最後を過ぎています。 |
- `TransactionInactiveError` {{domxref("DOMException")}}
- : この `IDBCursor` のトランザクションは活性化していません。
- {{jsxref("TypeError")}}
- : `count` パラメーターに渡された値がゼロや負の数です。
- `InvalidStateError` {{domxref("DOMException")}}
- : カーソルは現在繰り返し中か、最後を過ぎています。

##

このシンプルな断片でトランザクションを作成し、オブジェクトストアを取得し、オブジェクトストアのレコードを一通り繰り返すカーソルを使っています。ここで `cursor.advance(2)` を使ってそれぞれ 2 回前進していて、つまり 1 つおきの結果だけが表示されます。`advance()` は {{domxref("IDBCursor.continue")}} と同様に動作しますが、常に次のレコードに移動するのでなく、一度に複数のレコードを飛び越えられるのが違います。
このシンプルな例では、トランザクションを作成し、オブジェクトストアを取得し、オブジェクトストアのレコードを一通り繰り返すカーソルを使っています。ここで `cursor.advance(2)` を使ってそれぞれ 2 回前進していて、つまり 1 つおきの結果だけが表示されます。`advance()` は {{domxref("IDBCursor.continue")}} と同様に動作しますが、常に次のレコードに移動するのでなく、一度に複数のレコードを飛び越えられるのが違います。

注意点としてループの繰り返しで、カーソルオブジェクトの現在のレコードのテータを `cursor.value.foo`を使って取得できます。完全な動作例は、[IDBCursor の例](https://github.com/mdn/dom-examples/tree/main/indexeddb-examples/idbcursor)([ライブ例を見る](https://mdn.github.io/dom-examples/indexeddb-examples/idbcursor/))を見てください。

```js
function advanceResult() {
list.innerHTML = "";
var transaction = db.transaction(["rushAlbumList"], "readonly");
var objectStore = transaction.objectStore("rushAlbumList");
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");

objectStore.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
objectStore.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
var listItem = document.createElement("li");
listItem.innerHTML =
"<strong>" +
cursor.value.albumTitle +
"</strong>, " +
cursor.value.year;
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
cursor.advance(2);
} else {
console.log("全エントリーを 1 つおきに表示しました。");
console.log("全項目を 1 つおきに表示しました。");
}
};
}
Expand All @@ -74,10 +72,10 @@ function advanceResult() {

## 関連情報

- [IndexedDB を使用する](/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB)
- トランザクションを開始する : {{domxref("IDBDatabase")}}
- トランザクションを使用する : {{domxref("IDBTransaction")}}
- キーレンジを設定する : {{domxref("IDBKeyRange")}}
- データの取得と変更 : {{domxref("IDBObjectStore")}}
- カーソルを使用する : {{domxref("IDBCursor")}}
- リファレンスの例 : [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([ライブ例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
- [IndexedDB の使用](/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB)
- トランザクションの開始: {{domxref("IDBDatabase")}}
- トランザクションの使用: {{domxref("IDBTransaction")}}
- キーの範囲の設定: {{domxref("IDBKeyRange")}}
- データの取得と変更: {{domxref("IDBObjectStore")}}
- カーソルの使用: {{domxref("IDBCursor")}}
- 参考例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
92 changes: 35 additions & 57 deletions files/ja/web/api/idbcursor/continue/index.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,64 @@
---
title: IDBCursor.continue()
title: "IDBCursor: continue() メソッド"
short-title: continue()
slug: Web/API/IDBCursor/continue
l10n:
sourceCommit: 2c641e08878722bf29fb784d58c61873ce4a133a
---

{{APIRef("IndexedDB")}}
{{APIRef("IndexedDB")}} {{AvailableInWorkers}}

**`continue()`** は {{domxref("IDBCursor")}} インターフェースのメソッドで、カーソルを現在の方向に次の位置、任意のキーパラメーターに一致するキーを持つアイテムまで進めます。キーを指定しない場合、カーソルはその方向に基づいて、すぐ隣の位置へ進みます。

{{AvailableInWorkers}}
**`continue()`** は {{domxref("IDBCursor")}} インターフェイスのメソッドで、カーソルを現在の方向に次の位置、任意のキーパラメーターに一致するキーを持つアイテムまで進めます。キーを指定しない場合、カーソルはその方向に基づいて、すぐ隣の位置へ進みます。

## 構文

```js-nolint
cursor.continue(key);
continue()
continue(key)
```

### 引数

- `key` {{optional_inline}}
- : カーソルを進めるためのキーです。
- : このカーソルを進めるためのキーです。

### 返値

なし ({{jsxref("undefined")}})。

### 例外

このメソッドは次の内いずれかの {{domxref("DOMException")}} を発生させることがあります。

<table class="standard-table">
<thead>
<tr>
<th scope="col">例外</th>
<th scope="col">解説</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>TransactionInactiveError</code></td>
<td>この `IDBCursor` のトランザクションがアクティブではありません。</td>
</tr>
<tr>
<td><code>DataError</code></td>
<td>
<p>
キーパラメーターが以下の状態のうちのいずれかである可能性があります。
</p>
<ul>
<li>キーが妥当なキーではない</li>
<li>
キーがこのカーソルの位置と同じかそれより小さく、カーソルの方向が
<code>next</code> または <code>nextunique</code> である
</li>
<li>
キーがこのカーソルの位置と同じかそれより大きく、カーソルの方向が
<code>prev</code> または <code>prevunique</code> である
</li>
</ul>
</td>
</tr>
<tr>
<td><code>InvalidStateError</code></td>
<td>カーソルが現在走査中または末尾を越えて走査しました。</td>
</tr>
</tbody>
</table>
- `TransactionInactiveError` {{domxref("DOMException")}}
- : この `IDBCursor` のトランザクションがアクティブではありません。
- `DataError` {{domxref("DOMException")}}
- : key 引数が以下の状態のうちのいずれかである可能性があります。
- key が妥当なキーではない
- キーがこのカーソルの位置と同じかそれより小さく、カーソルの方向が `next` または `nextunique` である。
- キーがこのカーソルの位置と同じかそれより大きく、カーソルの方向が `prev` または `prevunique` である。
- `InvalidStateError` {{domxref("DOMException")}}
- : カーソルが現在走査中または末尾を越えて走査しました。

##

この単純で部分的な実例ではトランザクションを作り、オブジェクトストアを取得した後、オブジェクトストア内の全ての反復処理するためカーソルを使用しています。カーソルはキーに基づいてデータを選択するには必要ありません。その全てを捕らえることができます。また、それぞれのループ内での繰り返しでカーソルオブジェクトを用い、`cursor.value.foo` とすることで、現在のレコードからカーソルの下のデータを取得できることには注目です。完全な例については [IDBCursor の例](https://github.com/mdn/dom-examples/tree/main/indexeddb-examples/idbcursor) ([ライブデモを見る](https://mdn.github.io/dom-examples/indexeddb-examples/idbcursor/)) を参照してください。

```js
function displayData() {
var transaction = db.transaction(["rushAlbumList"], "readonly");
var objectStore = transaction.objectStore("rushAlbumList");
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");

objectStore.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
objectStore.openCursor().onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
var listItem = document.createElement("li");
listItem.innerHTML = cursor.value.albumTitle + ", " + cursor.value.year;
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);

cursor.continue();
} else {
console.log("全エントリーを表示しました");
console.log("全項目を表示しました");
}
};
}
Expand All @@ -97,9 +75,9 @@ function displayData() {
## 関連情報

- [IndexedDB の使用](/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB)
- トランザクションの開始 : {{domxref("IDBDatabase")}}
- トランザクションを使う : {{domxref("IDBTransaction")}}
- キーの範囲設定 : {{domxref("IDBKeyRange")}}
- データの取得と変更 : {{domxref("IDBObjectStore")}}
- カーソルを使う : {{domxref("IDBCursor")}}
- リファレンス 実例 : [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
- トランザクションの開始: {{domxref("IDBDatabase")}}
- トランザクションの使用: {{domxref("IDBTransaction")}}
- キーの範囲の設定: {{domxref("IDBKeyRange")}}
- データの取得と変更: {{domxref("IDBObjectStore")}}
- カーソルの使用: {{domxref("IDBCursor")}}
- 参考例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
19 changes: 9 additions & 10 deletions files/ja/web/api/idbcursor/continueprimarykey/index.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
---
title: IDBCursor.continuePrimaryKey()
title: "IDBCursor: continuePrimaryKey() メソッド"
short-title: continuePrimaryKey()
slug: Web/API/IDBCursor/continuePrimaryKey
l10n:
sourceCommit: d42b609444efb915ab46117f59985d67dda21eb6
sourceCommit: 2c641e08878722bf29fb784d58c61873ce4a133a
---

{{APIRef("IndexedDB")}}
{{APIRef("IndexedDB")}} {{AvailableInWorkers}}

{{domxref("IDBCursor")}} インターフェイスの **`continuePrimaryKey()`** メソッドは、カーソルを、キーが引数として指定するキーと一致し、かつ主キーが引数として指定する主キーと一致するアイテムに進めます。
**`continuePrimaryKey()`**{{domxref("IDBCursor")}} インターフェイスのメソッドで、カーソルを、キーが引数として指定するキーと一致し、かつ主キーが引数として指定する主キーと一致するアイテムに進めます。

典型的な使用例は、キーを 1 個ずつ比較することなく、前に使用したカーソルが閉じた場所から反復を再開することです。

新しいカーソルのデータを読み込む前にこのメソッドを複数回呼び出す (たとえば、同じ `onsuccess` ハンドラーで `continuePrimaryKey()` を 2 回呼び出す) と、カーソルの値を得たフラグがクリアされているため、2 回目の呼び出しで `InvalidStateError` 例外が投げられます
新しいカーソルのデータを読み込む前にこのメソッドを複数回呼び出す (たとえば、同じ `onsuccess` ハンドラーで `continuePrimaryKey()` を 2 回呼び出す) と、カーソルの値を得たフラグがクリアされているため、2 回目の呼び出しで `InvalidStateError` 例外が発生します

このメソッドは、インデックスを対象とするカーソルでのみ有効です。オブジェクトストアを対象とするカーソルで使うと、エラーが投げられます。

{{AvailableInWorkers}}
このメソッドは、インデックスを対象とするカーソルでのみ有効です。オブジェクトストアを対象とするカーソルで使うと、エラーが発生します。

## 構文

Expand All @@ -32,7 +31,7 @@ continuePrimaryKey(key, primaryKey)

### 返値

なし ({{jsxref("undefined")}})
なし ({{jsxref("undefined")}})

### 例外

Expand Down Expand Up @@ -94,4 +93,4 @@ request.onsuccess = (event) => {
- キーの範囲の設定: {{domxref("IDBKeyRange")}}
- データの取得と変更: {{domxref("IDBObjectStore")}}
- カーソルの使用: {{domxref("IDBCursor")}}
- リファレンス例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
- 参考例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
23 changes: 12 additions & 11 deletions files/ja/web/api/idbcursor/delete/index.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
---
title: IDBCursor.delete()
title: "IDBCursor: delete() メソッド"
short-title: delete()
slug: Web/API/IDBCursor/delete
l10n:
sourceCommit: d42b609444efb915ab46117f59985d67dda21eb6
sourceCommit: 2c641e08878722bf29fb784d58c61873ce4a133a
---

{{APIRef("IndexedDB")}}
{{APIRef("IndexedDB")}} {{AvailableInWorkers}}

{{domxref("IDBCursor")}} インターフェイスの **`delete()`** メソッドは、{{domxref("IDBRequest")}} オブジェクトを返し、別のスレッドで、カーソルの位置を変えずにカーソルが指しているレコードを削除します。レコードが削除されると、カーソルの値は `null` になります。
**`delete()`**{{domxref("IDBCursor")}} インターフェイスのメソッドで、{{domxref("IDBRequest")}} オブジェクトを返し、別のスレッドで、カーソルの位置を変えずにカーソルが指しているレコードを削除します。レコードが削除されると、カーソルの値は `null` になります。

注意点として、{{domxref("IDBIndex.openKeyCursor()")}} で取得したカーソルでは `delete()` (や {{domxref("IDBCursor.update()")}}) を呼ぶことはできません。このような用途のためには、かわりに {{domxref("IDBIndex.openCursor()")}} を使用しないといけません。

{{AvailableInWorkers}}
注意点として、`delete()` (や {{domxref("IDBCursor.update()")}}) を {{domxref("IDBIndex.openKeyCursor()")}} で取得したカーソルで呼ぶことはできません。このような用途のためには、かわりに {{domxref("IDBIndex.openCursor()")}} を使用しないといけません。

## 構文

Expand All @@ -21,11 +20,13 @@ delete()

### 引数

なし
なし

### 返値

この操作に関して続くイベントが発火する {{domxref("IDBRequest")}} オブジェクト。`result` 属性は `undefined` になります。
この操作に関連する後続のイベントが発生する {{domxref("IDBRequest")}} オブジェクト。

処理が成功した場合、リクエストの {{domxref("IDBRequest.result", "result")}} プロパティの値は `undefined` です。

### 例外

Expand Down Expand Up @@ -67,7 +68,7 @@ function deleteResult() {
}
cursor.continue();
} else {
console.log("エントリーを表示しました");
console.log("項目をを表示しました");
}
};
}
Expand All @@ -89,4 +90,4 @@ function deleteResult() {
- キーの範囲の設定: {{domxref("IDBKeyRange")}}
- データの取得と変更: {{domxref("IDBObjectStore")}}
- カーソルの使用: {{domxref("IDBCursor")}}
- リファレンス例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
- 参考例: [To-do Notifications](https://github.com/mdn/dom-examples/tree/main/to-do-notifications) ([動く例を見る](https://mdn.github.io/dom-examples/to-do-notifications/))
Loading

0 comments on commit a7268ba

Please sign in to comment.