suchen
HeimWeb-FrontendFront-End-Fragen und AntwortenIst die lokale Datenbank eine neue Funktion von HTML5?
Ist die lokale Datenbank eine neue Funktion von HTML5?Jan 23, 2022 pm 04:41 PM
html5新特性lokale Datenbank

Lokale Datenbank ist eine neue Funktion von HTML5. Html5 bietet eine browserseitige Datenbankunterstützung, die es Entwicklern ermöglicht, eine lokale Datenbank auf der Browserseite direkt über die JS-API zu erstellen, und unterstützt Standard-SQL-CRUD-Operationen, wodurch Offline-Webanwendungen das Speichern strukturierter Daten komfortabler werden.

Ist die lokale Datenbank eine neue Funktion von HTML5?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, HTML5-Version, Dell G3-Computer.

Obwohl Html5 bereits leistungsstarken LocalStorage und SessionStorage bietet, können beide nur Daten zum Speichern einfacher Datenstrukturen bereitstellen und sind für komplexe Webanwendungsdaten machtlos. Das Unglaubliche ist, dass Html5 eine Datenbankunterstützung auf der Browserseite bietet, die es uns ermöglicht, eine lokale Datenbank auf der Browserseite direkt über die JS-API zu erstellen, und Standard-SQL-CRUD-Operationen unterstützt, wodurch Offline-Webanwendungen das Speichern strukturierter Daten bequemer machen . Als Nächstes stellen wir die relevanten APIs und die Verwendung lokaler Daten vor.

Die grundlegendsten Schritte zum Betreiben einer lokalen Datenbank sind:

  • Schritt 1: openDatabase-Methode: Erstellen Sie ein Objekt, um auf die Datenbank zuzugreifen.
  • Zweiter Schritt: Verwenden Sie das im ersten Schritt erstellte Datenbankzugriffsobjekt, um die Transaktionsmethode auszuführen. Mit dieser Methode können Sie eine Ereignisantwortmethode festlegen, um die Transaktion erfolgreich zu starten.
  • Schritt 3: Übergeben Die Methode „executeSql“ führt eine Abfrage aus. Natürlich kann die Abfrage lauten: CRUD.

Als nächstes stellen wir die Parameter und die Verwendung der relevanten Methoden vor.

(1) openDatabase-Methode:

//Demo:获取或者创建一个数据库,如果数据库不存在那么创建之
var dataBase = openDatabase("student", "1.0", "学生表", 1024 * 1024, function () { });

Die openDatabase-Methode öffnet eine vorhandene Datenbank. Wenn die Datenbank nicht vorhanden ist, kann sie auch eine Datenbank erstellen. Die Bedeutung mehrerer Parameter ist:

  • 1, Datenbankname.
  • 2. Die Versionsnummer der Datenbank reicht natürlich nicht aus
  • 3.
  • 4. Legen Sie die Größe der zugewiesenen Datenbank fest (Einheit ist KB).
  • 5, Rückruffunktion (kann weggelassen werden).
  • Erstellen Sie beim ersten Anruf die Datenbank und stellen Sie dann die Verbindung her.

(2) Die db.transaction-Methode kann eine Rückruffunktion festlegen. Diese Funktion kann einen Parameter akzeptieren, der das Objekt der von uns gestarteten Transaktion ist. Anschließend kann das SQL-Skript über dieses Objekt ausgeführt werden, was mit den folgenden Schritten kombiniert werden kann.

(3) Führen Sie die Abfrage über die MethodeexecuteSql aus.

ts.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)

Parameterbeschreibung:

  • qlQuery: Die SQL-Anweisung, die speziell ausgeführt werden muss, die erstellt, ausgewählt, aktualisiert, gelöscht werden kann;
  • value1, value2..]: Ein Array aller in der SQL verwendeten Parameter Ersetzen Sie in der Methode „executeSql“ zunächst die in der s>-Anweisung zu verwendenden Parameter und fügen Sie diese Parameter dann in ein Array im zweiten Parameter ein.
  • ataHandler: Bei erfolgreicher Ausführung wird die Callback-Funktion aufgerufen.
  • 4, errorHandler: Callback-Funktion, die aufgerufen wird, wenn die Ausführung fehlschlägt

Das Folgende ist ein umfassendes Beispiel, das Sie sich ansehen können:

<head>
 <script src="Scripts/jquery-1.5.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        function initDatabase() {
            var db = getCurrentDb();//初始化数据库
            if(!db) {alert("您的浏览器不支持HTML5本地数据库");return;}
            db.transaction(function (trans) {//启动一个事务,并设置回调函数
                //执行创建表的Sql脚本
                trans.executeSql("create table if not exists Demo(uName text null,title text null,words text null)", [], function (trans, result) {
                }, function (trans, message) {//消息的回调函数alert(message);});
            }, function (trans, result) {
            }, function (trans, message) {
            });
        }
        $(function () {//页面加载完成后绑定页面按钮的点击事件
            initDatabase();
            $("#btnSave").click(function () {
                var txtName = $("#txtName").val();
                var txtTitle = $("#txtTitle").val();
                var txtWords = $("#txtWords").val();
                var db = getCurrentDb();
                //执行sql脚本,插入数据
                db.transaction(function (trans) {
                    trans.executeSql("insert into Demo(uName,title,words) values(?,?,?) ", [txtName, txtTitle, txtWords], function (ts, data) {
                    }, function (ts, message) {
                        alert(message);
                    });
                });
                showAllTheData();
            });
        });
        function getCurrentDb() {
            //打开数据库,或者直接连接数据库参数:数据库名称,版本,概述,大小
            //如果数据库不存在那么创建之
            var db = openDatabase("myDb", "1.0", "it&#39;s to save demo data!", 1024 * 1024); ;
            return db;
        }
        //显示所有数据库中的数据到页面上去
        function showAllTheData() {
            $("#tblData").empty();
            var db = getCurrentDb();
            db.transaction(function (trans) {
                trans.executeSql("select * from Demo ", [], function (ts, data) {
                    if (data) {
                        for (var i = 0; i < data.rows.length; i++) {
                            appendDataToTable(data.rows.item(i));//获取某行数据的json对象
                        }
                    }
                }, function (ts, message) {alert(message);var tst = message;});
            });
        }
        function appendDataToTable(data) {//将数据展示到表格里面
            //uName,title,words
            var txtName = data.uName;
            var txtTitle = data.title;
            var words = data.words;
            var strHtml = "";
            strHtml += "<tr>";
            strHtml += "<td>"+txtName+"</td>";
            strHtml += "<td>" + txtTitle + "</td>";
            strHtml += "<td>" + words + "</td>";
            strHtml += "</tr>";
            $("#tblData").append(strHtml);
        }
    </script>
</head>
    <body>
        <table>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="txtName" id="txtName" required/></td>
            </tr>
               <tr>
                <td>标题:</td>
                <td><input type="text" name="txtTitle" id="txtTitle" required/></td>
            </tr>
            <tr>
                <td>留言:</td>
                <td><input type="text" name="txtWords" id="txtWords" required/></td>
            </tr>
        </table>
        <input type="button" value="保存" id="btnSave"/>
        <hr/>
        <input type="button" value="展示所哟数据" onclick="showAllTheData();"/>
        <table id="tblData">
        </table>
    </body>
</html>

Der Ausführungseffekt ist wie in der Abbildung dargestellt :


Verwandte Empfehlungen: 《HTML-Video-Tutorial

Das obige ist der detaillierte Inhalt vonIst die lokale Datenbank eine neue Funktion von HTML5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen?Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen?Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Erklären Sie das Konzept des faulen Ladens.Erklären Sie das Konzept des faulen Ladens.Mar 13, 2025 pm 07:47 PM

Lazy Ladeverzögerung des Ladens von Inhalten bis zur Bedarf, Verbesserung der Webleistung und Benutzererfahrung durch Reduzierung der anfänglichen Ladezeiten und des Serverlasts.

Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben?Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben?Mar 18, 2025 pm 01:44 PM

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile?Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile?Mar 18, 2025 pm 01:45 PM

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Wie funktioniert der React -Versöhnungsalgorithmus?Wie funktioniert der React -Versöhnungsalgorithmus?Mar 18, 2025 pm 01:58 PM

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen?Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen?Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern?Wie verhindern Sie das Standardverhalten bei Ereignishandlern?Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten?Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten?Mar 19, 2025 pm 04:16 PM

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software