MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla

Revision 515061 of IndexedDB

  • Revision slug: IndexedDB
  • Revision title: IndexedDB
  • Revision id: 515061
  • তৈরি হয়েছেঃ
  • তৈরিকারীঃ towfiqueanam
  • Is current revision? না
  • মন্তব্য

Revision Content

 ইনডেক্সডডিবি (IndexedDB) ক্লায়েন্ট-সাইড স্টোরেজ এর জন্য একটি এপিআই যা গুরুত্বপূর্ণ পরিমান গাঠনিক ডাটা জমা রাখে এবং যা ইনডেক্স এর সাহায্যে উক্ত ডাটার উপর উচ্চ কর্মক্ষমতাসম্পন্ন  অনুসন্ধান চালাতে পারে।যেখানে ডোম স্টোরেজ  উপকারী ক্ষুদ্র পরিমান ডাটা জমা রাখার জন্য, এটি কম উপকারী বড় আকারের গাঠনিক ডাটা জমা করার জন্য, সেক্ষেত্রে ইনডেক্সডডিবি(indexedDB) একটি সমাধান প্রদান করে।

এই পেজটি এপিআই অবজেক্টসমূহের টেকনিক্যাল বিবরণগুলোর  প্রবেশপথ হিসেবে কাজ করে। যদি আপনার প্রাথমিক বই এর দরকার হয় তবে আপনার  ইনডেক্সডডিবির প্রাথমিক ধারণা  দেখা উচিত। আরও বিস্তারিতের জন্য দেখুন  ইনডেক্সডডিবির ব্যবহার

ইনডেক্সডডিবি(IndexedDB)  সিনক্রোনাস এবং এসিনক্রোনাস এক্সেস এর জন্য পৃথক এপিআই প্রদান করে। সিনক্রোনাস এপিআই কেবল ওয়েব ওয়ার্কার   এর ভিতরে ব্যবহারের জন্য কিন্তু এটি এখনও কোন ব্রাউজারে বাস্তবায়ন করা হয়নি। এসিনক্রোনাস এপিআই ওয়েবওয়ার্কার এর ভিতরে ও বাইরে উভয় জায়গাতে কাজ করে,কিন্তু ফায়ারফক্সে এখনও বাস্তবায়ন হয়নি।

এসিনক্রোনাস এপিআই

এসিনক্রোনাস এপিআই মেথড কলিং থ্রেডকে ব্লক না করে তা রিটার্ন করে। একটি  ডাটাবেজ এ এসিনক্রোনাস প্রবেশাধিকার নেওয়ার জন্য ,একটি   window অবজেক্টের   indexedDB এট্রিবিউট এর  open() কল করুন। এই মেথড একটি  {{domxref("IDBRequest")}} অবজেক্ট রিটার্ন করে ;এসিনক্রোনাস অপারেশনগুলো  এপ্লিকেশন এর সাথে যোগাযোগ করে {{domxref("IDBRequest")}} অবজেক্টগুলোর ইভেন্ট চালুর মাধ্যমে।

নোট:   indexedDB অবজেক্ট পুরাতন ব্রাউজার ভার্সনগুলোতে পূর্বনির্ধারিত (property mozIndexedDB  Gecko < 16 এ , webkitIndexedDB  Chrome এ, এবং  msIndexedDB  IE 10 ে).

এসিনক্রোনাস ইনডেক্সডডিবি (IndexedDB) এপিআই এর ইন্টারফেসগুলো নিচের ন্যায়:

{{domxref("IDBFactory")}}
ডাটাবেজে প্রবেশাধিকার প্রদান করে। গ্লোবাল অবজেক্ট  indexedDB এই ইন্টারফেসটি বাস্তবায়ন করছে এবং এই এপিআই এর জন্য এটি প্রবেশমুখ।
{{domxref("IDBCursor")}}
অবজেক্ট স্টোরসমূহ এবং ইনডেক্সসমূহের উপর বারবার ইটারেট করে।
{{domxref("IDBCursorWithValue")}}
অবজেক্ট স্টোরসমূহ এবং ইনডেক্সসমূহ বারবার ইটারেট করে এবং কার্সর এর বর্তমান মান রিটার্ন করে।
{{domxref("IDBDatabase")}}
ডাটাবেজের একটি সংযোগ বুঝায়। এটি একমাত্র রাস্তা যা দিয়ে ডাটাবেজে লেনদেন সম্ভব।
{{domxref("IDBEnvironment")}}
একটি ক্লায়েন্ট-সাইড ডাটাবেজে প্রবেশাধিকার প্রদান করে। এটি {{ domxref("window") }} এবং{{ domxref("worker") }} অবজেক্টসমূহদ্বারা বাস্তবায়িত হচ্ছে।
{{domxref("IDBIndex")}}
একটি ইনডেক্স এর মেটাডাটাতে প্রবেশাধিকার প্রদান করে।
{{domxref("IDBKeyRange")}}
কীসমূহের একটি সীমা সংজ্ঞায়িত করে।
{{domxref("IDBObjectStore")}}
একটি অবজেক্ট স্টোরকে প্রতিনিধিত্ব করে।
{{domxref("IDBOpenDBRequest")}}
একটি ডাটাবেজ খোলার অনুরোধকে প্রতিনিধিত্ব করে।
{{domxref("IDBRequest")}}
Provides access to results of asynchronous requests to databases and database objects. It is what you get when you call an asynchronous method.
{{domxref("IDBTransaction")}}
Represents a transaction. You create a transaction on a database, specify the scope (such as which object stores you want to access), and determine the kind of access (read only or write) that you want.

An early version of the specification also defined these now removed interfaces. They are still documented in case you need to update previously written code:

{{domxref("IDBVersionChangeRequest")}}
Represents a request to change the version of a database. The way to change the version of the database has since changed (by calling {{domxref("IDBFactory.open")}} without also calling {{domxref("IDBDatabase.setVersion")}}), and the interface {{domxref("IDBOpenDBRequest")}} now has the functionality of the removed {{domxref("IDBVersionChangeRequest")}}.
{{domxref("IDBDatabaseException")}}  {{ obsolete_inline() }}
Represents exception conditions that can be encountered while performing database operations.

Note: There is also a synchronous version of the API.  The Synchronous API has not been implemented in any browser.  It is intended for use with WebWorkers.

Storage limits

There isn't any limit on a single database item's size. However there may be a limit on each IndexedDB database's size. This limit (and the way the user interface will assert it) may vary from one browser to another:

Examples

  • A powerful example of what IndexedDB can be utilized for on the web is the example by Marco Castelluccio, winner of the IndexedDB Mozilla DevDerby. The winning demo was eLibri, a library and eBook reader application.
  • You should also check out the reference application for the examples in the reference docs: To-do Notifications (view example live.) Not every snippet appears in this example, but every example uses the same data structure and syntax, and will make sense in the context of this application.

Browser compatibility

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Asynchronous API

11.0 {{ property_prefix("webkit") }}
24

{{ CompatGeckoDesktop("2.0") }} {{ property_prefix("moz") }}
{{ CompatGeckoDesktop("16.0") }}
10 17 {{ CompatNo() }}
Synchronous API
(used with WebWorkers)
{{ CompatNo() }} {{ CompatNo() }}
See {{ bug(701634) }}
{{ CompatNo() }} {{ CompatNo() }} {{ CompatNo() }}
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Asynchronous API 4.4 {{ CompatGeckoDesktop("6.0") }} {{ property_prefix("moz") }}
{{ CompatGeckoDesktop("16.0") }}
10 17 {{ CompatNo() }}

Note: Some browsers don't yet support IndexedDB but do support WebSQL, most notably Safari/Webkit on desktop and iOS. One way around this problem is to use an IndexedDB Polyfill or Shim that falls back to WebSQL for non-supporting browsers.

See also

Revision Source

<div class="summary">
 <p>&nbsp;ইনডেক্সডডিবি (IndexedDB) ক্লায়েন্ট-সাইড স্টোরেজ এর জন্য একটি এপিআই যা গুরুত্বপূর্ণ পরিমান গাঠনিক ডাটা জমা রাখে এবং যা ইনডেক্স এর সাহায্যে উক্ত ডাটার উপর উচ্চ কর্মক্ষমতাসম্পন্ন&nbsp; অনুসন্ধান চালাতে পারে।যেখানে <a href="/bn-BD/docs/DOM/Storage" title="en-US/docs/DOM/Storage">ডোম স্টোরেজ&nbsp;</a> উপকারী ক্ষুদ্র পরিমান ডাটা জমা রাখার জন্য, এটি কম উপকারী বড় আকারের গাঠনিক ডাটা জমা করার জন্য, সেক্ষেত্রে ইনডেক্সডডিবি(indexedDB) একটি সমাধান প্রদান করে।</p>
</div>
<p>এই পেজটি এপিআই অবজেক্টসমূহের টেকনিক্যাল বিবরণগুলোর&nbsp; প্রবেশপথ হিসেবে কাজ করে। যদি আপনার প্রাথমিক বই এর দরকার হয় তবে আপনার&nbsp; <a href="/bn-BD/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB" title="/en-US/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB">ইনডেক্সডডিবির প্রাথমিক ধারণা&nbsp; </a>দেখা উচিত। আরও বিস্তারিতের জন্য দেখুন&nbsp; <a href="https://developer.mozilla.org/bn-BD/docs/IndexedDB/Using_IndexedDB" title="https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB">ইনডেক্সডডিবির ব্যবহার</a> ।</p>
<p>ইনডেক্সডডিবি(IndexedDB)&nbsp; সিনক্রোনাস এবং এসিনক্রোনাস এক্সেস এর জন্য পৃথক এপিআই প্রদান করে। সিনক্রোনাস এপিআই কেবল <a href="/bn-BD/docs/DOM/Worker" title="Worker">ওয়েব ওয়ার্কার&nbsp;</a>&nbsp; এর ভিতরে ব্যবহারের জন্য কিন্তু এটি এখনও কোন ব্রাউজারে বাস্তবায়ন করা হয়নি। এসিনক্রোনাস এপিআই ওয়েবওয়ার্কার এর ভিতরে ও বাইরে উভয় জায়গাতে কাজ করে,কিন্তু ফায়ারফক্সে এখনও বাস্তবায়ন হয়নি।</p>
<h2 id="Asynchronous_API">এসিনক্রোনাস এপিআই</h2>
<p>এসিনক্রোনাস এপিআই মেথড কলিং থ্রেডকে ব্লক না করে তা রিটার্ন করে। একটি&nbsp; ডাটাবেজ এ এসিনক্রোনাস প্রবেশাধিকার নেওয়ার জন্য ,একটি &nbsp;<a href="/en-US/docs/Web/API/IDBFactory.open"><code> </code></a><code><a href="/en-US/docs/DOM/window" title="en-US/docs/DOM/window">window</a> অবজেক্টের&nbsp;&nbsp; <a href="/en-US/docs/Web/API/IDBEnvironment.indexedDB"><code>indexedDB</code></a> এট্রিবিউট এর&nbsp; <a href="https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory.open">open()</a></code> কল করুন। এই মেথড একটি&nbsp; {{domxref("IDBRequest")}} অবজেক্ট রিটার্ন করে ;এসিনক্রোনাস অপারেশনগুলো&nbsp; এপ্লিকেশন এর সাথে যোগাযোগ করে {{domxref("IDBRequest")}} অবজেক্টগুলোর ইভেন্ট চালুর মাধ্যমে।</p>
<div class="note">
 <p>নোট:&nbsp;&nbsp; <code>indexedDB</code> অবজেক্ট পুরাতন ব্রাউজার ভার্সনগুলোতে পূর্বনির্ধারিত (property <code>mozIndexedDB</code>&nbsp; Gecko &lt; 16 এ , <code>webkitIndexedDB</code>&nbsp; Chrome এ, এবং&nbsp; <code>msIndexedDB</code>&nbsp; IE 10 ে).</p>
</div>
<p>এসিনক্রোনাস ইনডেক্সডডিবি (IndexedDB) এপিআই এর ইন্টারফেসগুলো নিচের ন্যায়:</p>
<dl>
 <dt>
  {{domxref("IDBFactory")}}</dt>
 <dd>
  ডাটাবেজে প্রবেশাধিকার প্রদান করে। গ্লোবাল অবজেক্ট&nbsp; <a href="/en-US/docs/Web/API/IDBEnvironment.indexedDB"><code>indexedDB</code></a> এই ইন্টারফেসটি বাস্তবায়ন করছে এবং এই এপিআই এর জন্য এটি প্রবেশমুখ।</dd>
 <dt>
  {{domxref("IDBCursor")}}</dt>
 <dd>
  অবজেক্ট স্টোরসমূহ এবং ইনডেক্সসমূহের উপর বারবার ইটারেট করে।</dd>
 <dt>
  {{domxref("IDBCursorWithValue")}}</dt>
 <dd>
  অবজেক্ট স্টোরসমূহ এবং ইনডেক্সসমূহ বারবার ইটারেট করে এবং কার্সর এর বর্তমান মান রিটার্ন করে।</dd>
 <dt>
  {{domxref("IDBDatabase")}}</dt>
 <dd>
  ডাটাবেজের একটি সংযোগ বুঝায়। এটি একমাত্র রাস্তা যা দিয়ে ডাটাবেজে লেনদেন সম্ভব।</dd>
 <dt>
  {{domxref("IDBEnvironment")}}</dt>
 <dd>
  একটি ক্লায়েন্ট-সাইড ডাটাবেজে প্রবেশাধিকার প্রদান করে। এটি {{ domxref("window") }} এবং{{ domxref("worker") }} অবজেক্টসমূহদ্বারা বাস্তবায়িত হচ্ছে।</dd>
 <dt>
  {{domxref("IDBIndex")}}</dt>
 <dd>
  একটি ইনডেক্স এর মেটাডাটাতে প্রবেশাধিকার প্রদান করে।</dd>
 <dt>
  {{domxref("IDBKeyRange")}}</dt>
 <dd>
  কীসমূহের একটি সীমা সংজ্ঞায়িত করে।</dd>
 <dt>
  {{domxref("IDBObjectStore")}}</dt>
 <dd>
  একটি অবজেক্ট স্টোরকে প্রতিনিধিত্ব করে।</dd>
 <dt>
  {{domxref("IDBOpenDBRequest")}}</dt>
 <dd>
  একটি ডাটাবেজ খোলার অনুরোধকে প্রতিনিধিত্ব করে।</dd>
 <dt>
  {{domxref("IDBRequest")}}</dt>
 <dd>
  Provides access to results of asynchronous requests to databases and database objects. It is what you get when you call an asynchronous method.</dd>
 <dt>
  {{domxref("IDBTransaction")}}</dt>
 <dd>
  Represents a transaction. You create a transaction on a database, specify the scope (such as which object stores you want to access), and determine the kind of access (read only or write) that you want.</dd>
</dl>
<ul>
</ul>
<p>An early version of the specification also defined these now removed interfaces. They are still documented in case you need to update previously written&nbsp;code:</p>
<dl>
 <dt>
  {{domxref("IDBVersionChangeRequest")}}</dt>
 <dd>
  Represents a request to change the version of a database. The way to change the version of the database has since changed (by calling {{domxref("IDBFactory.open")}} without also calling {{domxref("IDBDatabase.setVersion")}}), and the interface {{domxref("IDBOpenDBRequest")}} now has the functionality of the removed {{domxref("IDBVersionChangeRequest")}}.</dd>
 <dt>
  {{domxref("IDBDatabaseException")}}&nbsp; {{ obsolete_inline() }}</dt>
 <dd>
  Represents exception conditions that can be encountered while performing database operations.</dd>
</dl>
<ul>
</ul>
<div class="note">
 <p><strong>Note</strong>: There is also a <a href="/en-US/docs/IndexedDB/Syncronous_API" title="/en-US/docs/IndexedDB/SyncronousAPI">synchronous version of the API</a>.&nbsp; The Synchronous API has not been implemented in any browser.&nbsp; It is intended for use with <a href="/en-US/docs/DOM/Using_web_workers" title="https://developer.mozilla.org/en-US/docs/Using_web_workers">WebWorkers</a>.</p>
</div>
<h2 id="Storage_limits">Storage limits</h2>
<p>There isn't any limit on a single database item's size. However there may be a limit on each IndexedDB database's size. This limit (and the way the user interface will assert it) may vary from one browser to another:</p>
<ul>
 <li>
  <p>Firefox: no limit on the IndexedDB database's size. The user interface will just ask permission for storing blobs bigger than 50 MB. This size quota can be customized through the <code>dom.indexedDB.warningQuota</code> preference (which is defined in <a href="http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js" title="http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js">http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js</a>).</p>
 </li>
 <li>
  <p>Google Chrome: see <a class="link-https" href="https://developers.google.com/chrome/whitepapers/storage#temporary" rel="freelink">https://developers.google.com/chrome...rage#temporary</a></p>
 </li>
</ul>
<h2 id="Example" name="Example">Examples</h2>
<ul>
 <li>A powerful example of what IndexedDB can be utilized for on the web is the example by Marco Castelluccio, winner of the IndexedDB Mozilla DevDerby. The winning demo was <a href="/en-US/demos/detail/elibri" title="https://developer.mozilla.org/en-US/demos/detail/elibri">eLibri</a>, a library and eBook reader application.</li>
 <li>You should also check out the reference application for the examples in the reference docs: <a class="external" href="https://github.com/chrisdavidmills/to-do-notifications/tree/gh-pages">To-do Notifications</a> (<a class="external" href="http://chrisdavidmills.github.io/to-do-notifications/">view example live</a>.) Not every snippet appears in this example, but every example uses the same data structure and syntax, and will make sense in the context of this application.</li>
</ul>
<h2 id="Browser_compatibility" name="Browser_compatibility">Browser compatibility</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Chrome</th>
    <th>Firefox (Gecko)</th>
    <th>Internet Explorer</th>
    <th>Opera</th>
    <th>Safari (WebKit)</th>
   </tr>
   <tr>
    <td>Asynchronous API</td>
    <td>
     <p>11.0 {{ property_prefix("webkit") }}<br />
      24</p>
    </td>
    <td>{{ CompatGeckoDesktop("2.0") }} {{ property_prefix("moz") }}<br />
     {{ CompatGeckoDesktop("16.0") }}</td>
    <td>10</td>
    <td>17</td>
    <td>{{ CompatNo() }}</td>
   </tr>
   <tr>
    <td>Synchronous API<br />
     (used with <a href="/en-US/docs/DOM/Using_web_workers" title="https://developer.mozilla.org/en-US/docs/Using_web_workers">WebWorkers</a>)</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}<br />
     See {{ bug(701634) }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<div id="compat-mobile">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Android</th>
    <th>Firefox Mobile (Gecko)</th>
    <th>IE Phone</th>
    <th>Opera Mobile</th>
    <th>Safari Mobile</th>
   </tr>
   <tr>
    <td>Asynchronous API</td>
    <td>4.4</td>
    <td>{{ CompatGeckoDesktop("6.0") }} {{ property_prefix("moz") }}<br />
     {{ CompatGeckoDesktop("16.0") }}</td>
    <td>10</td>
    <td>17</td>
    <td>{{ CompatNo() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<div class="note">
 <p>Note: Some browsers don't yet support IndexedDB but <a href="http://caniuse.com/sql-storage" title="http://caniuse.com/sql-storage">do support WebSQL</a>, most notably Safari/Webkit on desktop and iOS. One way around this problem is to use an <a href="https://github.com/axemclion/IndexedDBShim" title="https://github.com/axemclion/IndexedDBShim">IndexedDB Polyfill or Shim</a> that falls back to WebSQL for non-supporting browsers.</p>
</div>
<h2 id="See_also">See also</h2>
<ul>
 <li><a href="/en-US/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB" title="en-US/docs/IndexedDB/Basic Concepts Behind IndexedDB">Basic Concepts About IndexedDB</a></li>
 <li><a href="/en-US/docs/IndexedDB/Using_IndexedDB" title="en-US/docs/IndexedDB/IndexedDB primer">Using IndexedDB</a></li>
 <li><a class="external" href="http://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/" title="http://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/">Storing images and files in IndexedDB</a></li>
 <li><a class="external" href="http://www.w3.org/TR/IndexedDB/" title="http://www.w3.org/TR/IndexedDB/">Indexed Database API specification </a></li>
 <li><a class="external" href="http://msdn.microsoft.com/en-us/scriptjunkie/gg679063.aspx" title="http://msdn.microsoft.com/en-us/scriptjunkie/gg679063.aspx">IndexedDB — The Store in Your Browser</a></li>
 <li><a class="external" href="http://nparashuram.com/IndexedDB/trialtool/index.html" title="http://nparashuram.com/IndexedDB/trialtool/index.html">IndexedDB Examples</a></li>
 <li><a href="https://github.com/axemclion/IndexedDBShim" title="https://github.com/axemclion/IndexedDBShim">IndexedDB Polyfill/Shim</a> for browsers that only support WebSQL (e.g. mobile WebKit)</li>
 <li><a href="http://nparashuram.com/IndexedDBShim/" title="http://nparashuram.com/IndexedDBShim/">JQuery IndexedDB plugin</a></li>
</ul>
আগের রিভিসনে ফিরে যান