HTML5本地存储之如果没有数据库究竟会怎样_html5教程技巧

 我来答
懂视生活
2023-07-27 · 百度认证:湖南福仁科技有限公司官方账号
懂视生活
向TA提问
展开全部

前言
本章主要内容是Web Storage与本地数据库,其中Web Storage 是对cookie的优化,本地数据库是HTML5新增的一个功能,使用它可以在客户端建立一个数据库

大大减轻服务器端的负担,加快访问数据速度。

学习本章需要掌握Web Storage基本概念,了解sessionStorage与localStorage的使用与差别

掌握本地数据库的使用

什么是WebStorage?
前面说过,webstorage是对cookie的优化而来,HTML4中使用cookie在客户端存储用户数据,长期使用发现存在以下问题:

大小限制在4kbcookie每次随HTTP事务一起发送,浪费带宽正确操作cookie很复杂(这个有待考虑)
由于以上问题,HTML5提出WebStorage作为新的客户端本地保存技术。
代码如下:Web Storage 技术在web上存储数据即针对客户端本地;具体来说分为两种:sessionStrage:session即会话的意思,在这里的session是指用户浏览某个网站时,从进入网站到关闭网站这个时间段,session对象的有效期就只有这么长。

localStorage:将数据保存在客户端硬件设备上,不管它是什么,意思就是下次打开计算机时候数据还在。

两者区别就是一个作为临时保存,一个拥有长期保存。使用示例
代码如下:简单应用Web Storage 实验sessionStorage localStorage保存数据读取数据var msg = document.getElementById('msg'), text = document.getElementById('text'), type = document.getElementById('type');function save() { var str = text.value; var t = type.value; if (t == 'session') { sessionStorage.setItem('msg', str); } else { localStorage.setItem('msg', str); } }function load() { var t = type.value; if (t == 'session') { msg.innerHTML = sessionStorage.getItem('msg'); } else { msg.innerHTML = localStorage.getItem('msg'); } }



在chrome浏览器下看会有感觉的。

简单web留言板
代码如下:简单留言板Web Storage 实验 min-height: 100px;"> 留言清空
实际访问:db.transaction(function () {tx.excuteSql('create table ......');});
数据查询:excuteSql(sql, [], dataHandler, errorHandler)//后面两个为回调函数;[]估计是做sql注入处理
光说不练假把式,我们来实际操作一番,使用数据库实现web通讯录(左思右想还是用上了jQuery):

做的时候居然发现我的FF不支持本地数据库!!!以下是用chrome完成的简单的通讯录:
代码如下:通讯录span{ cursor: pointer;} $(document).ready(function () { var search = $('#search'); var btSearch = $('#btSearch');var phoneBook = $('#phoneBook'); var name = $('#name'); var phone = $('#phone'); var add = $('#add');//开始程序 var db = openDatabase('phoneBook', '', 'my', 102400);init();add.click(function () { save(name.val(), phone.val()); }); btSearch.click(function () { init(search.val()) }); $('#phoneBook span').click(function () { deleteByName($(this).attr('name')); s = ''; });//初始化界面 function init(name) { db.transaction(function (tx) { tx.executeSql('create table if not exists phoneBook(name text, phone text)', []); var sql = 'select * from phoneBook where 1=1'; var param = []; if (name) { sql += ' and name=? '; param.push(name); } tx.executeSql(sql, param, function (tx, rs) { phoneBook.html(''); for (var i = 0, len = rs.rows.length; i < len; i++) { var data = rs.rows.item(i); showData(data); } }); }); }function showData(data) { var str = '姓名:' + data.name + ';电话:' + data.phone + ' 删除'; phoneBook.append($(str)); }//删除数据 function deleteByName(name) { db.transaction(function (tx) { tx.executeSql('delete from phoneBook where name=?', [name], function (tx, rs) { init(); }) }); } window.del = deleteByName; //增加 function save(name, phone) { db.transaction(function (tx) { tx.executeSql('insert into phoneBook values(?, ?)', [name, phone], function (tx, rs) { var d = {}; d.name = name; d.phone = phone; showData(d); }) }); }});本地数据库实现web通讯录搜索姓名: 手机:添加到通讯录



结语

对于搞过后端的同学,这章东西其实也是非常简单的,我再一次涌起了这种想法:

其实HTML5就是HTML4+api接口,目的就是让我们可以用js做更多事情罢了。
小鹿管家
2025-03-10 广告
批量创建广告,可以试用小鹿管家。小鹿管家是广告批量管理工具,支持快速多账户搭建计划、跨账户复制计划、智能盯盘、多账户报告聚合等提效功能,助力广告投放效率,监控广告投放效果,提升ROI。通过批量创建、智能提醒、BI报表等技术手段帮助广告运营团... 点击进入详情页
本回答由小鹿管家提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式