aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/idbcursorsync/index.html
blob: 4093748822ffecb4eb36e1d359bd057c2930b4c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
---
title: IDBCursorSync
slug: Web/API/IDBCursorSync
tags:
  - API
  - NeedsMarkupWork 需求标记
  - 参考
  - 参考2
  - 实验性
  - 实验性2
  - 接口
  - 过时的
translation_of: Web/API/IDBCursorSync
---
<p>{{APIRef("IndexedDB")}} {{ draft() }}</p>

<div class="warning">
<p><strong>注意</strong>: 同步IndexedDB API版本 本来计划仅用于<a href="/en-US/docs/Web/Guide/Performance/Using_web_workers">Web Workers</a>, 事实上由于本身存在一些问题已经被移除. 当然,如果Web开发人员有足够的需求,   <a href="/en/IndexedDB" title="en/IndexedDB">IndexedDB API</a> 的 <code>IDBCursorSync</code>表示用于遍历数据库中多个记录的游标。 你只能设置 一个<code>IDBCursorSync</code> 代表一种游标实例, 但同时可以有无限数量的游标。.此操作在基础索引或对象存储上执行。它使应用程序能够同步处理光标范围内的所有记录。</p>
</div>

<h2 id="方法概述">方法概述</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <td><code>bool <a href="#continue" title="#continue">continue</a> (in optional any key);</code></td>
  </tr>
  <tr>
   <td><code>void <a href="#remove" title="#remove">remove</a> () raises (<a href="/en/IndexedDB/IDBDatabaseException" title="en/IndexedDB/IDBDatabaseException">IDBDatabaseException</a>);</code></td>
  </tr>
 </tbody>
</table>

<h2 id="属性">属性</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">属性</th>
   <th scope="col">类型</th>
   <th scope="col">描述</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><a name="attr_count"><code>count</code></a></td>
   <td><code>readonly unsigned long long</code></td>
   <td>共享当前key的对象总数</td>
  </tr>
  <tr>
   <td><a name="attr_direction"><code>direction</code></a></td>
   <td><code>readonly unsigned short</code></td>
   <td>游标方向. 查看 《常量》 以获取可能得value.</td>
  </tr>
  <tr>
   <td><a name="attr_key"><code>key</code></a></td>
   <td><code>readonly any</code></td>
   <td>游标位置记录的key.</td>
  </tr>
  <tr>
   <td><a name="attr_value"><code>value</code></a></td>
   <td><code>any</code></td>
   <td>
    <p>游标位置记录的value. 使用下面的代码设置这个属性可以增加IDBDatabaseException :</p>

    <dl>
     <dt><code><a href="/en/IndexedDB/IDBDatabaseException#DATA_ERR" title="en/IndexedDB/DatabaseException#DATA ERR">DATA_ERR</a></code></dt>
     <dd>如果潜在的对象存储使用 <a href="/en/IndexedDB#gloss_in-line_key" title="en/IndexedDB#gloss in-line key">in-line keys</a> 并且 在 <a href="/en/IndexedDB#gloss_key_path" title="en/IndexedDB#gloss key path">key path</a> 中的属性不能匹配这个游标的位置key</dd>
     <dt><code><a href="/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR" title="en/IndexedDB/DatabaseException#NOT ALLOWED ERR">NOT_ALLOWED_ERR</a></code></dt>
     <dd>如果在<code><a href="/en/IndexedDB/IDBObjectStoreSync#const_read_only" title="en/IndexedDB/IDBObjectStoreSync#const read only">READ_ONLY</a></code> 或者 <code><a href="/en/IndexedDB/IDBCursorSync#const_snapshot_read" title="en/IndexedDB/IDBCursorSync#const snapshot read">SNAPSHOT_READ</a></code>模式下,潜在的下标或者对象存储不支持更新这个记录 , 或者由于潜在的index设置为<a href="/en/IndexedDB#gloss_auto-populated" title="en/IndexedDB#gloss auto-populated">auto-populated</a>.某个index记录不能被更新</dd>
     <dt><code><a href="/en/IndexedDB/IDBDatabaseException#SERIAL_ERR" title="en/IndexedDB/DatabaseException#SERIAL ERR">SERIAL_ERR</a></code></dt>
     <dd>如果存储的数据不能被内部结构化克隆算法序列化.</dd>
    </dl>
   </td>
  </tr>
 </tbody>
</table>

<h2 id="常量">常量</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">常量</th>
   <th scope="col"></th>
   <th scope="col">描述</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><a name="const_next"><code>NEXT</code></a></td>
   <td>0</td>
   <td>游标包含重复,并且其方向单调地key的顺序递增。</td>
  </tr>
  <tr>
   <td><a name="const_next_no_duplicate"><code>NEXT_NO_DUPLICATE</code></a></td>
   <td>1</td>
   <td>游标包含不重复, 并且其方向单调地key的顺序递增.</td>
  </tr>
  <tr>
   <td><a name="const_prev"><code>PREV</code></a></td>
   <td>2</td>
   <td>游标包含重复,并且其方向单调地key的顺序递减。</td>
  </tr>
  <tr>
   <td><a name="const_prev_no_duplicate"><code>PREV_NO_DUPLICATE</code></a></td>
   <td>3</td>
   <td>游标包含不重复, 并且其方向单调地key的顺序递减.</td>
  </tr>
 </tbody>
</table>

<h2 id="方法">方法</h2>

<h3 id="continue" name="continue">continue()</h3>

<p>将游标沿其方向前进到其键与可选键参数匹配的项。如果没有指定键,则前进到下一个位置。如果游标已到达其范围的末尾,则返回false,否则返回true。</p>

<pre>bool continue (
  in optional any key
);
</pre>

<h5 id="Parameters">Parameters</h5>

<dl>
 <dt>key</dt>
 <dd>移动光标位置的key。</dd>
</dl>

<h3 id="remove" name="remove">remove()</h3>

<p>删除光标的位置的记录并不会改变光标的位置</p>

<pre>void delete (
) raises (DatabaseException);
</pre>

<h5 id="Exceptions">Exceptions</h5>

<p>使用下面的代码可以增加一个 IDBDatabaseException :</p>

<dl>
 <dt><code><a href="/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR" title="en/IndexedDB/DatabaseException#NOT ALLOWED ERR">NOT_ALLOWED_ERR</a></code></dt>
 <dd>如果在<code><a href="/en/IndexedDB/IDBObjectStoreSync#const_read_only" title="en/IndexedDB/IDBObjectStoreSync#const read only">READ_ONLY</a></code> 或者 <code><a href="/en/IndexedDB/IDBCursorSync#const_snapshot_read" title="en/IndexedDB/IDBCursorSync#const snapshot read">SNAPSHOT_READ</a></code>模式下,潜在的下标或者对象存储不支持更新这个记录 ,</dd>
</dl>