c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

关于HTML5本地存储的相关讲解

林玟书 2023-09-09编程经验
HTML5本地存储是指一种在访问网页时可以将数据存储在客户端本地的技术。在很多情况下,访问者无法总是在网络畅通的情况下使用网页服务。因此,本地存储技术有助于构建离线应用程序或者提高访问者的体验。本
HTML5本地存储是指一种在访问网页时可以将数据存储在客户端本地的技术。在很多情况下,访问者无法总是在网络畅通的情况下使用网页服务。因此,本地存储技术有助于构建离线应用程序或者提高访问者的体验。本次我将为您讲解HTML5本地存储技术的使用和实现方式。

LocalStorage

LocalStorage可以在客户端保存键值对,和Cookie不同的是,LocalStorage并不在HTTP请求和响应时传递到服务器上,而是在浏览器端(客户端)保存,并且永久存在于本地。我们可以用它来保存用户的个性化设置、浏览历史、表单数据等等。

    
    // 存储数据
    localStorage.setItem('name', '张三');

    // 获取数据
    const name = localStorage.getItem('name');

    // 删除数据
    localStorage.removeItem('name');

    // 清空数据
    localStorage.clear();
    

SessionStorage

SessionStorage同样可以在客户端本地保存键值对。不同的是它只在浏览器标签页关闭前有效,关闭后数据就会删除。我们可以用它来存储当前网页的状态,例如页码、选项卡信息等。

    
    // 存储数据
    sessionStorage.setItem('age', '20');

    // 获取数据
    const age = sessionStorage.getItem('age');

    // 删除数据
    sessionStorage.removeItem('age');

    // 清空数据
    sessionStorage.clear();
    

IndexedDB

IndexedDB是一种Web浏览器内建立客户端数据库的API。IndexedDB可以在客户端存储大量的结构化数据,例如图片、音频或视频等资料。相比LocalStorage和SessionStorage,IndexedDB具有更大的存储空间,且支持索引查询。

    
    // 创建/打开数据库
    var request = window.indexedDB.open('myDatabase', 1);

    request.onerror = function(event) {
        console.log('数据库打开失败');
    };
    request.onsuccess = function(event) {
        var db = request.result;
        console.log('数据库打开成功');

        // 添加数据
        var customerObject = { name: "张三", age: 20 };
        var transaction = db.transaction(["customers"], "readwrite");
        var objectStore = transaction.objectStore("customers");
        var objectStoreRequest = objectStore.add(customerObject);
        objectStoreRequest.onsuccess = function(event) {
            console.log('数据添加成功');
        };
        transaction.oncomplete = function(event) {
            console.log('事务完成');
        };
        transaction.onerror = function(event) {
            console.log('事务失败');
        };

        // 获取数据
        var transaction = db.transaction(["customers"]);
        var objectStore = transaction.objectStore("customers");
        var request = objectStore.get('张三');
        request.onsuccess = function(event) {
            // Do something with the request.result!
            console.log(request.result);
        };
    };
    

Cookies

Cookies是一种服务器写入到客户端的特殊数据,以便在浏览器下次访问该网站时发送到服务器。与LocalStorage和IndexedDB不同的是,它的大小有限制(一般为4KB),并且需要在每次请求时携带数据。目前,我们在实际项目开发中使用的Cookie都是来自于第三方插件或者服务。例如Google Analytics或Google AdSense等。

    
    // 设置Cookie
    document.cookie = "username=张三";

    // 获取Cookie
    function getCookie(name) {
        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

        if(arr=document.cookie.match(reg))
            return unescape(arr[2]);
        else
            return null;
    }

    // 删除Cookie
    function delCookie(name) {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval=getCookie(name);
        if(cval!=null)
            document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }
    
本次我为您讲解了几种常见的HTML5本地存储技术,包括LocalStorage,SessionStorage,IndexedDB,Cookies。我们可以根据实际需求来选择相应的技术。在日常项目开发中,本地存储技术是一个非常重要的内容,它可以帮助我们构建更好的Web应用程序。

文章评论