[html5]Web SQL
来源:互联网 发布:单机网络手游排行榜 编辑:程序博客网 时间:2024/04/29 18:58
Web sql 是在浏览器模拟数据库,可以使用JS来操作SQL完成对数据的读写,但是这个东西目前支持的浏览器不多,而且其W3C规范已经停止支持,貌似其前景不是很明朗
W3C 规范:http://www.w3.org/TR/webdatabase/#dom-sqltransaction-sync-executesql (目前已经停止更新,组织也没想清楚发展方向)
支持的浏览器以及版本:
Safari (3.2+)
Chrome (3.0+)
Opera (10.5+)
通常常规的离线应用使用的是webstorage,但是webstorage带有很大的局限性,比如存储空间,domain安全机制等,而WEB SQL 就没有那么多的限制,其有更大的存储空间(可自定义设置),跨域读写,存储结构自由等特点,而且可以方便的使用SQL来进行读写,非常的方便。
其API也是比较简单,规范中都有说明,这里备份一下自己的代码:
<script>function clearTxt() {document.getElementById('result').innerHTML = ' ';}function drop() {if (window.openDatabase){var dbs = openDatabase('mydatabase', 'v1.0', 'Save data DB', 100);if(dbs) {dbs.transaction(function(tx){tx.executeSql("DROP TABLE AUCTION_TABLE", [], function(tx, results){// do nothing},function(tx,error){alert(error.message);});});} else {alert('open database failed.');}} else {alert('not support web sql.');}}function create() {if (window.openDatabase){var dbs = openDatabase('mydatabase', 'v1.0', 'Save data DB', 100);if(dbs) {dbs.transaction(function(tx){tx.executeSql("CREATE TABLE IF NOT EXISTS AUCTION_TABLE(ID UNIQUE, TITLE, PRICE, PIC)");});} else {alert('open database failed.');}} else {alert('not support web sql.');}}function del() {if (window.openDatabase){var dbs = openDatabase('mydatabase', 'v1.0', 'Save data DB', 100);if(dbs) {dbs.transaction(function(tx){tx.executeSql("DELETE FROM AUCTION_TABLE;");});} else {alert('open database failed.');}} else {alert('not support web sql.');}}function insert() {if (window.openDatabase){var dbs = openDatabase('mydatabase', 'v1.0', 'Save data DB', 100);if(dbs) {dbs.transaction(function(tx){tx.executeSql("INSERT INTO AUCTION_TABLE(ID, TITLE, PRICE, PIC) VALUES(?,?,?,?)",['1', 'Auction title', '598', 'http://img02.taobaocdn.com/tps/i2/T1VsaWXc8lXXXXXXXX-490-170.png']);});} else {alert('open database failed.');}} else {alert('not support web sql.');}}function select() {if (window.openDatabase){var dbs = openDatabase('mydatabase', 'v1.0', 'Save data DB', 100);if(dbs) {dbs.transaction(function(tx){tx.executeSql("SELECT * FROM AUCTION_TABLE", [], function(tx, results) {if(results && results.rows && 0 < results.rows.length) {var text = "";for (var i=0; i < results.rows.length; i++){ text += results.rows.item(i).ID + '' + results.rows.item(i).TITLE + ''+ results.rows.item(i).PRICE + '' + results.rows.item(i).PIC + '<br/>';}document.getElementById('result').innerHTML = text;}}, null);});} else {alert('open database failed.');}} else {alert('not support web sql.');}}</script>
对于websql,由于宽泛的读写规则,其带来的就是很大的安全问题,跨域读取,XSS攻击,SQL注入等都是非常头疼的事情。所以什么样的数据可以存储,如何存储,需要慎重考虑。W3C目前停止了该规范的更新,可能对目前的规范设计并不满意,而目前浏览器厂商的支持度也不高,后续的发展,还是未知。
- HTML5 Web SQL
- [html5]Web SQL
- HTML5 Web SQL
- HTML5 Web SQL
- HTML5 Web SQL 数据库
- HTML5のWeb SQL
- HTML5 Web SQL 数据库
- HTML5 Web SQL 数据库!
- html5 sqlite(Web SQL)
- html5 之web SQL
- HTML5 Web SQL 数据库
- HTML5 Web SQL 数据库
- HTML5 Web SQL
- HTML5 Web SQL Database 数据库
- HTML5 web存储—web SQL
- html5 本地数据库-Web SQL Database
- HTML5开发 Web SQL Database 本地数据库
- HTML5 离线存储之Web SQL
- TortoiseHg 入门教程
- 第二周实验报告(4)
- ruby学习笔记----待完善,边学边记
- 《第三周实验报告任务4》
- MapReduce Map数 reduce数设置
- [html5]Web SQL
- 第三周实验报告(1)
- 中国联通SP业务接入开发总结(SGIP1.2 协议)
- C 语言最大难点揭秘(转)
- 第三周实验报告(2)
- 【Android】如何寻找出某个Intent是否可用(queryIntentActivities)
- 偶然发现的诡异现象:Chrome浏览器滚动条变色
- nginx配置文件解析
- 数学中的游戏:概率