Indexed Database API
{{Short description|JavaScript application programming interface}}
{{Infobox technology standard
| title = IndexedDB
| long_name = Indexed Database API
| native_name = Indexed Database API
| native_name_lang = en
| image =
| caption =
| status = First Public Working Draft
| year_started =
| first_published =
| version = 3.0
| preview = Editor's Draft
| organization = {{Plainlist|
- {{abbr|W3C|World Wide Web Consortium}}
- Microsoft
- Mozilla
- Oracle{{Cite web|url=https://www.w3.org/TR/2015/REC-IndexedDB-20150108/#h-acknowledgements|title=Indexed Database API|date=2015-01-08|access-date=2022-04-21}}
}}
| committee = Web Applications Working Group
| editors = {{Plainlist|
}}
{{Collapsible list|title=Previous editors|
- Nikunj Mehta
- Jonas Sicking
- Eliot Graff
- Andrei Popescu
- Jeremy Orlow
}}
| authors =
| base_standards = {{Plainlist|
}}
| related_standards = {{Plainlist|
}}
| abbreviation = IndexedDB
| license =
| website = {{URL|https://www.w3.org/TR/IndexedDB/}}
}}
The Indexed Database API (commonly referred to as IndexedDB) is a JavaScript application programming interface (API) provided by web browsers for managing a NoSQL database of objects. It is a standard maintained by the World Wide Web Consortium (W3C).
As an alternative to the Web storage standard, IndexedDB can provide more storage capacity. Web storage has fixed limits per website, but IndexedDB limits are "usually quite large, if they exist at all".{{cite web |title=Working with IndexedDB |url=https://developers.google.com/web/ilt/pwa/working-with-indexeddb |publisher=Google Inc. |access-date=19 January 2019}}
Use cases for IndexedDB include caching web application data for offline availability.{{cite web |title=Using IndexedDB |url=https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB |website=MDN |publisher=Mozilla |access-date=19 January 2019}} Some browser modules, such as devtools or extensions, may also use it for storage.
History
Support for IndexedDB was added to Firefox version 4,{{cite web |url=https://developer.mozilla.org/en/IndexedDB |title=IndexedDB - MDC Doc Center |publisher=Developer.mozilla.org |access-date=2011-02-18 |archive-date=2012-05-26 |archive-url=https://web.archive.org/web/20120526230025/https://developer.mozilla.org/en/IndexedDB |url-status=dead }} Google Chrome version 11,{{cite web|url=https://chromestatus.com/feature/6507459568992256|title=IndexedDB - Chrome Platform Status|website=IndexedDB - Chrome Platform Status|publisher=The Chromium Projects |date=2012-05-21 |access-date=2021-05-15}} Internet Explorer version 10,{{citation |url=http://msdn.microsoft.com/en-us/library/ie/hh673548(v=vs.85).aspx |title=IndexedDB |publisher=MSDN |date=2012-03-14 |access-date=2012-05-24}} Safari version 8,{{cite web|url=https://developer.apple.com/library/content/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_10.html#//apple_ref/doc/uid/TP40014484-SW1|title=OS X Yosemite v10.10 § App Features|publisher=Apple|website=Apple Developers|date=2017-07-09|access-date=2021-05-15}} and Microsoft Edge version 12.{{Cite web|url=https://caniuse.com/indexeddb|title=IndexedDB|website=Can I use...|date=n.d.|access-date=2021-05-16}}
Web SQL Database was a prior API developed by Apple.{{cite web|last=Shankland|first=Stephen|url=https://www.cnet.com/news/consensus-emerges-for-key-web-app-standard/|title=Consensus emerges for key Web app standard | Deep Tech - CNET News |publisher=News.cnet.com |date=2010-03-12 |access-date=2011-02-18}} But Firefox refused to add support for it and argued against it becoming a standard because it would codify the quirks of SQLite.{{cite web|url=https://robert.ocallahan.org/2010/06/not-implementing-features-is-hard_03.html|archive-url=https://web.archive.org/web/20201109032423/http://robert.ocallahan.org/2010/06/not-implementing-features-is-hard_03.html|title=Well, I'm Back: Not Implementing Features Is Hard|author-first=Robert|author-last=O'Callahan|publisher=Weblogs.mozillazine.org|date=2010-06-04|access-date=2011-02-18|archive-date=2020-11-09}}{{Cite web|url=https://hacks.mozilla.org/2010/06/beyond-html5-database-apis-and-the-road-to-indexeddb|title=Beyond HTML5: Database APIs and the Road to IndexedDB – Mozilla Hacks - the Web developer blog|website=Mozilla Hacks – the Web developer blog|author-first=Arun|author-last=Ranganathan|date=2010-06-01|access-date=2021-05-21}} It was thus deprecated in favor of IndexedDB.{{Cite web|url=https://softwareengineering.stackexchange.com/questions/220254/why-is-web-sql-database-deprecated|title=html5 - Why is Web SQL database deprecated?|website=Software Engineering Stack Exchange}}
IndexedDB 1.0 became a W3C Recommendation on January 8, 2015.{{Cite web|url=https://www.w3.org/TR/2015/REC-IndexedDB-20150108/|title=Indexed Database API|date=2015-01-08|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
|editor-first1=Nikunj|editor-last1=Mehta
|editor-first2=Jonas|editor-last2=Sicking
|editor-first3=Eliot|editor-last3=Graff
|editor-first4=Andrei|editor-last4=Popescu
|editor-first5=Jeremy|editor-last5=Orlow
|editor-first6=Joshua|editor-last6=Bell
}} IndexedDB 2.0 became a W3C Recommendation on January 30, 2018.{{Cite web|url=https://www.w3.org/blog/news/archives/6795|title=Indexed Database API 2.0 is now a W3C Recommendation {{!}} W3C News|website=W3C News|author=W3C|date=2018-01-30|access-date=2021-05-16}}{{Cite web|url=https://www.w3.org/TR/IndexedDB-2/|title=Indexed Database API 2.0|date=2018-01-30|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
|editor-first=Ali|editor-last=Alabbas
|editor-first2=Joshua|editor-last2=Bell
}} IndexedDB 3.0 was released as a First Public Working Draft on 11 March 2021 and remains as a Working Draft {{As of|2024|12|3|lc=y}}.{{Cite web |date=2024-11-07 |title=Indexed Database API 3.0 publication history |url=https://www.w3.org/standards/history/IndexedDB-3/ |archive-url=https://web.archive.org/web/20241203185526/https://www.w3.org/standards/history/IndexedDB-3/ |archive-date=2024-12-03 |access-date=2024-12-03 |website=W3C |language=en}}
Performance
Because IndexedDB is running inside of the security sandbox of a browser, all operations have to go through various security layers which decreases the performance of IndexedDB. With IndexedDB 2.0 {{Cite web|url=https://www.w3.org/blog/news/archives/6795|title=Indexed Database API 2.0 is now a W3C Recommendation {{!}} W3C News|website=W3C News|author=W3C|date=2018-01-30|access-date=2021-05-16}} the getAll() method was added which allows to improve performance on bulk read operations.
References
{{Reflist}}
External links
- [https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API IndexedDB API] on MDN Web Docs
- [https://nolanlawson.github.io/database-comparison/ Browser database comparison]
{{Web browsers|fsp}}
{{Web interfaces}}
{{W3C standards}}