Indexed Database API

Last updated
IndexedDB
Indexed Database API
AbbreviationIndexedDB
Native name
Indexed Database API
Status First Public Working Draft
Latest version3.0
11 March 2021 [1]
Preview versionEditor's Draft
11 March 2021 [2]
Organization
CommitteeWeb Applications Working Group
Editors
  • Ali Alabbas [1]
  • Joshua Bell [1]
Previous editors
    • Nikunj Mehta
    • Jonas Sicking
    • Eliot Graff
    • Andrei Popescu
    • Jeremy Orlow
Base standards
Related standards
Domain NoSQL databases
Website 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 JSON objects. It is a standard maintained by the World Wide Web Consortium (W3C). [1]

Contents

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". [5]

Use cases for IndexedDB include caching web application data for offline availability. [6] Some browser modules, such as devtools or extensions, may also use it for storage.

History

Support for IndexedDB was added to Firefox version 4, [7] Google Chrome version 11, [8] Internet Explorer version 10, [9] Safari version 8, [10] and Microsoft Edge version 12. [11]

Web SQL Database was a prior API developed by Apple. [12] But Firefox refused to add support for it and argued against it becoming a standard because it would codify the quirks of SQLite. [13] [14] It was thus deprecated in favor of IndexedDB. [15]

IndexedDB 1.0 became a W3C Recommendation on January 8, 2015. [16] IndexedDB 2.0 became a W3C Recommendation on January 30, 2018. [17] [3] IndexedDB 3.0 is currently a First Public Working Draft. [1]

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 [17] the getAll() method was added which allows to improve performance on bulk read operations.


Related Research Articles

<span class="mw-page-title-main">SQLite</span> Serverless relational database management system (RDBMS)

SQLite is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the most widely deployed database engine, as it is used by several of the top web browsers, operating systems, mobile phones, and other embedded systems.

<span class="mw-page-title-main">Firebird (database server)</span> Relational database management system

Firebird is an open-source SQL relational database management system that supports Linux, Microsoft Windows, macOS and other Unix platforms. The database forked from Borland's open source edition of InterBase in 2000 but the code has been largely rewritten since Firebird 1.5.

Netscape Plugin Application Programming Interface (NPAPI) was an application programming interface (API) of the web browsers that allows plugins to be integrated.

Add-on is the Mozilla term for software modules that can be added to the Firefox web browser and related applications. Mozilla hosts them on its official add-on website.

A browser extension is a software module for customizing a web browser. Browsers typically allow users to install a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web pages.

<span class="mw-page-title-main">HTML5</span> Fifth and current version of hypertext markup language

HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML Living Standard. It is maintained by the Web Hypertext Application Technology Working Group (WHATWG), a consortium of the major browser vendors.

Web storage, sometimes known as DOM storage, is a standard JavaScript API provided by web browsers. It enables websites to store persistent data on users' devices similar to cookies, but with much larger capacity and no information sent in HTTP headers. There are two main web storage types: local storage and session storage, behaving similarly to persistent cookies and session cookies respectively. Web Storage is standardized by the World Wide Web Consortium (W3C) and WHATWG, and is supported by all major browsers.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics and image processing and effects as part of the web page canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">WebSocket</span> Computer network protocol

WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011. The current API specification allowing web applications to use this protocol is known as WebSockets. It is a living standard maintained by the WHATWG and a successor to The WebSocket API from the W3C.

Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be accessed from another domain outside the domain from which the first resource was served.

Web SQL Database is a deprecated web browser API specification for storing data in databases that can be queried using SQL variant.

WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. It is a Candidate Recommendation of the W3C working group on Web Application Security, widely supported by modern web browsers. CSP provides a standard method for website owners to declare approved origins of content that browsers should be allowed to load on that website—covered types are JavaScript, CSS, HTML frames, web workers, fonts, images, embeddable objects such as Java applets, ActiveX, audio and video files, and other HTML5 features.

Wakanda is a JavaScript platform to develop and run web or mobile apps.

HTML5 Audio is a subject of the HTML5 specification, incorporating audio input, playback, and synthesis, as well as, in the browser. iOS

The following outline is provided as an overview of and topical guide to MySQL:

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

WebXR Device API is a Web application programming interface (API) that describes support for accessing augmented reality and virtual reality devices, such as the HTC Vive, Oculus Rift, Oculus Quest, Google Cardboard, HoloLens, Magic Leap or Open Source Virtual Reality (OSVR), in a web browser. The WebXR Device API and related APIs are standards defined by W3C groups, the Immersive Web Community Group and Immersive Web Working Group. While the Community Group works on the proposals in the incubation period, the Working Group defines the final web specifications to be implemented by the browsers.

<span class="mw-page-title-main">Progressive web app</span> Specific form of single page web application

A progressive web application (PWA), or progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.

Credential Management, also referred to as a Credential Management System (CMS), is an established form of software that is used for issuing and managing credentials as part of public key infrastructure (PKI).

References

  1. 1 2 3 4 5 Web Applications Working Group (2021-03-11). Alabbas, Ali; Bell, Joshua (eds.). "Indexed Database API 3.0". W3C. W3C First Public Working Draft. Web Applications Working Group. Retrieved 2021-05-15.
  2. Web Applications Working Group (2021-03-11). Alabbas, Ali; Bell, Joshua (eds.). "Indexed Database API 3.0". W3C. Editor’s Draft. Web Applications Working Group. Retrieved 2021-05-15.
  3. 1 2 Web Applications Working Group (2018-01-30). Alabbas, Ali; Bell, Joshua (eds.). "Indexed Database API 2.0". W3C. W3C Recommendation. Web Applications Working Group. Retrieved 2021-05-16.
  4. "Indexed Database API". 2015-01-08. Retrieved 2022-04-21.
  5. "Working with IndexedDB". Google. Retrieved 19 January 2019.
  6. "Using IndexedDB". MDN. Mozilla. Retrieved 19 January 2019.
  7. "IndexedDB - MDC Doc Center". Developer.mozilla.org. Archived from the original on 2012-05-26. Retrieved 2011-02-18.
  8. "IndexedDB - Chrome Platform Status". IndexedDB - Chrome Platform Status. The Chromium Projects. 2012-05-21. Retrieved 2021-05-15.
  9. IndexedDB, MSDN, 2012-03-14, retrieved 2012-05-24
  10. "OS X Yosemite v10.10 § App Features". Apple Developers. Apple. 2017-07-09. Retrieved 2021-05-15.
  11. "IndexedDB". Can I use... n.d. Retrieved 2021-05-16.
  12. Shankland, Stephen (2010-03-12). "Consensus emerges for key Web app standard | Deep Tech - CNET News". News.cnet.com. Retrieved 2011-02-18.
  13. O'Callahan, Robert (2010-06-04). "Well, I'm Back: Not Implementing Features Is Hard". Weblogs.mozillazine.org. Archived from the original on 2020-11-09. Retrieved 2011-02-18.
  14. Ranganathan, Arun (2010-06-01). "Beyond HTML5: Database APIs and the Road to IndexedDB – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog. Retrieved 2021-05-21.
  15. "html5 - Why is Web SQL database deprecated?". Software Engineering Stack Exchange.
  16. Web Applications Working Group (2015-01-08). Mehta, Nikunj; Sicking, Jonas; Graff, Eliot; Popescu, Andrei; Orlow, Jeremy; Bell, Joshua (eds.). "Indexed Database API". W3C. W3C Recommendation. Web Applications Working Group. Retrieved 2021-05-16.
  17. 1 2 W3C (2018-01-30). "Indexed Database API 2.0 is now a W3C Recommendation | W3C News". W3C News. Retrieved 2021-05-16.