Heim Web-Frontend HTML-Tutorial Detaillierte Einführung in den lokalen Speicher und die lokale Datenbank von H5

Detaillierte Einführung in den lokalen Speicher und die lokale Datenbank von H5

Jan 19, 2018 am 09:48 AM
html5 存储 数据库

Dieses Mal werde ich Ihnen eine detaillierte Einführung in den lokalen Speicher und die lokale Datenbank geben. Was sind die Vorsichtsmaßnahmen bei der Verwendung des lokalen Speichers und der lokalen Datenbank von H5? Werfen wir einen Blick darauf.

Lokaler Speicher

1.1 Der Hintergrund des Ursprungs des lokalen Speichers

Aufgrund der Einschränkungen der Cookie-Größe, des Formats, des Speicherdatenformats usw. in der HTML4-Ära, wenn eine Website-Anwendung diese browserseitig speichern möchte. Einige Informationen des Benutzers können nur mit Hilfe von Cookies erhalten werden. Diese Einschränkungen von Cookies führen jedoch dazu, dass Cookies nur einfache Daten wie Identifikatoren wie IDs speichern können.

Die folgenden Cookie-Einschränkungen gelten:

Die meisten Browser unterstützen Cookies bis zu 4096 Byte.

Browser begrenzen auch die Anzahl der Cookies, die eine Website auf dem Computer eines Benutzers speichern kann. Die meisten Browser erlauben nur 20 Cookies pro Website; wenn Sie versuchen, mehr Cookies zu speichern, werden die ältesten Cookies verworfen.

Einige Browser legen auch eine absolute Grenze für die Gesamtzahl der Cookies fest, die sie von allen Websites akzeptieren, normalerweise 300.

Cookies werden standardmäßig zusammen mit HTTP-Anfragen an den Backend-Server gesendet, aber nicht alle Anfragen erfordern Cookies. Beispielsweise sind für Anfragen für JS, CSS, Bilder usw. keine Cookies erforderlich.

Um eine Reihe von Einschränkungen von Cookies zu überwinden, kann HTML5 über die neue API von JS große Datenmengen direkt im Client-Browser speichern und unterstützt komplexe lokale Datenbanken, wodurch JS effizienter wird.

html5 unterstützt zwei Arten von WebStorage:

Permanenter lokaler Speicher (localStorage)

Lokaler Speicher auf Sitzungsebene (sessionStorage)

1.2 Permanenter lokaler Speicher: localStorage

Das localStorage-Objekt wurde zur neuesten JS-API hinzugefügt, um Benutzern das Speichern dauerhaft gespeicherter Webseitendaten zu erleichtern. Darüber hinaus werden die Daten nicht zusammen mit der HTTP-Anfrage an den Backend-Server gesendet, und die Größe der gespeicherten Daten muss grundsätzlich nicht berücksichtigt werden, da der HTML5-Standard eine Unterstützung von mindestens 4 MB durch den Browser erfordert untergräbt die Einschränkungen von Cookies und bietet eine bessere Lösung für das Web. Die Anwendung speichert komplexe Benutzerverfolgungsdaten lokal, um einen sehr bequemen technischen Support zu bieten. Als Nächstes stellen wir die häufig verwendeten Methoden von localStorage vor.

localStorage bietet vier Methoden, die uns bei der Durchführung entsprechender Vorgänge im lokalen Speicher unterstützen.

setItem(key, value) fügt lokale Speicherdaten hinzu. Die beiden Parameter sind sehr einfach und ich werde nicht auf Details eingehen.

getItem(key) ruft den entsprechenden Wert über den Schlüssel ab.

removeItem(key) löscht lokale Daten per Schlüssel.

clear() löscht die Daten.

Der Code lautet wie folgt:

<script type="text/javascript">
    //添加key-value 数据到 sessionStorage
    localStorage.setItem("demokey", "http://www.shiyanlou.com");
    //通过key来获取value
    var dt = localStorage.getItem("demokey");
    alert(dt);
    //清空所有的key-value数据。
    //localStorage.clear();
    alert(localStorage.length);
</script>
Nach dem Login kopieren

1.3 Lokaler Speicher auf Sitzungsebene: sessionStorage

Ein Js-Objekt wird in HTML5 hinzugefügt: sessionStorage kann direkt bedient werden über dieses Objekt WebStorage auf Sitzungsebene im Browser. Die im sessionStorage gespeicherten Daten liegen zunächst in Form eines Schlüsselwerts vor. Darüber hinaus beziehen sie sich auf die aktuelle Sitzung des Browsers. Wenn die Sitzung endet, werden die Daten automatisch gelöscht, ähnlich wie bei einem Cookie ohne festgelegte Ablaufzeit .

sessionStorage bietet vier Methoden, die uns bei der Durchführung verwandter Vorgänge im lokalen Speicher unterstützen.

setItem(key, value) fügt lokale Speicherdaten hinzu. Die beiden Parameter sind sehr einfach und ich werde nicht auf Details eingehen.

getItem(key) ruft den entsprechenden Wert über den Schlüssel ab.

removeItem(key) löscht lokale Daten per Schlüssel.

clear() löscht die Daten.

Der Code lautet wie folgt:

<script type="text/javascript">
    //添加key-value 数据到 sessionStorage
    sessionStorage.setItem("demokey", "http://blog.itjeek.com");
    //通过key来获取value
    var dt = sessionStorage.getItem("demokey");
    alert(dt);
    //清空所有的key-value数据。
    //sessionStorage.clear();
    alert(sessionStorage.length);
</script>
Nach dem Login kopieren

1.4 Leistungsstarke lokale Daten

Obwohl HTML5 bereits leistungsstarken localStorage und sessionStorage bereitstellt, können beide nur Speicher bereitstellen Die Daten von Einfache Datenstrukturen sind für die Daten komplexer Webanwendungen machtlos. Das Erstaunliche ist, dass HTML5 eine browserseitige Datenbankunterstützung 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, was das Speichern strukturierter Daten in Offline-Webanwendungen erleichtert. Als Nächstes stellen wir die relevanten APIs und die Verwendung lokaler Daten vor.

Die grundlegendsten Schritte zum Betreiben einer lokalen Datenbank sind:

Schritt eins: openDatabase-Methode: Erstellen Sie ein Objekt, um auf die Datenbank zuzugreifen.

Schritt 2: Verwenden Sie das im ersten Schritt erstellte Datenbankzugriffsobjekt, um die Transaktionsmethode auszuführen. Mit dieser Methode können Sie eine Ereignisantwortmethode einrichten, um die Transaktion erfolgreich auszuführen Antwortmethode.

Schritt 3: Führen Sie die Abfrage über die Methode „executeSql“ aus. Natürlich kann die Abfrage auch wie folgt lauten: CRUD.

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

1.4.1 openDatabase-Methode

//Demo: Eine Datenbank abrufen oder erstellen. Wenn die Datenbank nicht vorhanden ist, erstellen Sie sie

var dataBase = openDatabase(“student”, “1.0”, “学生表”, 1024 * 1024, function () { });
Nach dem Login kopieren


< Die 🎜>openDatabase-Methode öffnet eine vorhandene Datenbank. Wenn die Datenbank nicht vorhanden ist, kann sie auch

eine Datenbank erstellen. Die Bedeutung mehrerer Parameter ist:

Datenbankname.

Die Versionsnummer der Datenbank reicht natürlich nicht aus.

Eine Beschreibung der Datenbank.

Legen Sie die Größe der zugewiesenen Datenbank fest (Einheit ist KB).

Rückruffunktion (kann weggelassen werden).

Erstellen Sie beim ersten Anruf die Datenbank und stellen Sie dann die Verbindung her.

1.4.2 db.transaction方法

可以设置一个回调函数,此函数可以接受一个参数就是我们开启的事务的对象。然后通过此对象可以执行SQL脚本。

<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>
Nach dem Login kopieren

相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

HTML的table鼠标拖拽排序该如何实现

html属于什么文件html的文件该如何打开 

html怎样实现页面跳转时传递参数

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den lokalen Speicher und die lokale Datenbank von H5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles