html 5 本地數據庫(Web Sql Database)

基于HTML5的Web?DataBase?可以讓你在瀏覽器中進行數據持久地存儲管理和有效查詢,假設你的離線應用程序有需要規范化的存儲功能

本文講述如何使用核心方法openDatabase、transaction、executeSql

1.新建一個網頁,比如:test.html 內容如下:

[html]?view plaincopy
  1. <!DOCTYPE?html>??
  2. <html>??
  3. <head>??
  4. <meta?http-equiv="Content-Type"?content="text/html;?charset=gbk"?/>??
  5. <title>web?sql?database</title>??
  6. <script?type='text/javascript'?src='jquery-1.4.3.js'></script>???
  7. <script?type="text/javascript">??
  8. $(function(){??
  9. ????????if?(!window.openDatabase)?{????
  10. ???????????alert("不支持");??
  11. ????????}????
  12. ????????else?{????
  13. ????????????initDB();????
  14. ????????????createTables();???????????????
  15. ????????}?????
  16. function?initDB(){????
  17. ????var?shortName?=?'localDB';????
  18. ????var?version?=?'1.0';????
  19. ????var?displayName?=?'localDB?table';????
  20. ????var?maxSize?=?655350;?//?in?bytes????
  21. ????//window.openDatabase("數據庫名字",?"版本","數據庫描述",數據庫大小);??
  22. ????localDB?=?window.openDatabase(shortName,?version,?displayName,?maxSize);????
  23. }?????
  24. function?createTables(){????
  25. ????var?query?=?'CREATE?TABLE?IF?NOT?EXISTS?user(id?INTEGER?NOT?NULL,?username?TEXT?NOT?NULL);';????
  26. ????try?{????
  27. ????????localDB.transaction(function(transaction){????
  28. ????????????transaction.executeSql(query,?[],?null,?null);???????
  29. ????????});????
  30. ????}?????
  31. ????catch?(e)?{????
  32. ????console.log("create?table?failed");??
  33. ???????alert("建表失敗");??
  34. ????????return;????
  35. ????}????
  36. }????
  37. });??
  38. function?btnClick(){??
  39. ?var?username?=?$("#username").val();??
  40. ??try?{????
  41. ????????localDB.transaction(function(transaction){??
  42. ????????????transaction.executeSql("insert?into?user(id,username)?values(?,?)",?[1,username]);????
  43. ????????});???????
  44. ????}?????
  45. ????catch?(e)?{????
  46. ????console.log("insert?into?failed");??
  47. ???????alert("插入失敗");??
  48. ????????return;????
  49. ????}???
  50. ????console.log("insert?into?success");??
  51. ??//alert("insert?into?success");??
  52. ?}??
  53. ?function?btnSelect(){??
  54. ?localDB.transaction(function(tx)?{??
  55. ?tx.executeSql("select?*?from?user",?[],????
  56. ??function(tx,?result)?{??
  57. ??$("#result").empty();??
  58. ???for(var?i?=?0;?i?<?result.rows.length;?i++){???
  59. ???$("#result").append('<b>'?+result.rows.item(i)['id']+"------"?+result.rows.item(i)['username']+?'</b><br?/>');???
  60. ??}???
  61. ?},?function(){??
  62. ??alert("error");??
  63. ?});???
  64. });??
  65. ?}??
  66. </script>??
  67. </head>??
  68. <body>??
  69. ????<div?id="my"?style="height:100px;width:200px;border:1px?solid?red;">????
  70. ????<input?type="text"?name="username"?id="username"?value=""/>??
  71. ????<br/>??
  72. ????<button?onclick="btnClick()">insert</button>??
  73. ????</div>??
  74. ????<div?id="my1"?style="height:300px;width:200px;border:1px?solid?red;">??
  75. ????<button?onclick="btnSelect()">select</button>??
  76. ???<div?id="result"?style="height:300px;width:200px;border:1px?solid?blue;">??
  77. ??????</div>??
  78. ????</div>??
  79. </body>??
  80. </html>??

2.注意引入js文件哦

3.已經ok,直接打開網頁瀏覽 ,用谷歌瀏覽器,然后 按 F12鍵 查看 Application --Web SQL 下面有新建的數據庫以及表


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247666.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端學習資料及路線名稱網站

IT前端學習資料及路線常用PC端UI組件庫餓了么(Element-UI)https://element.eleme.cn/#/zh-CN常用小程序端UI組件庫uView UIhttp://v1.uviewui.com/名稱網站JQuery文件網https://code.jquery.com/jquery/jQuery手冊&#xff08;pc端&#xff09;http://jquery.cuishifeng.cn/jQu…

JS實現生成一個周對應日期數組

/* 獲取日期和周 */getDateWeek() {/* 得到當前日期的時間戳 */const timestamp Date.now()// const timestamp new Date(2019, 7, 30, 0, 0, 0, 0).getTime()const dateWeek Array.from(new Array(7)).map((_, i) > {/* 得到當前周每一天的時間戳 */const weekTimestamp…

npm升級package.json依賴包

使用npm管理node的包&#xff0c;可以使用npm update <name>對單個包升級&#xff0c;對于npm的版本大于 2.6.1,可以使用命令: npm install -g 升級全局的本地包。 對于版本小于2.6.1的一個一個包的升級實在是太麻煩&#xff0c;就想找到一個升級所有本地包的方法&#x…

Sublime Text 3 快捷鍵匯總

Sublime Text 3非常實用&#xff0c;但是想要用好&#xff0c;老是忘記&#xff0c;匯總一下&#xff0c;方便自己方便別人。 用慣了vim&#xff0c;有些快捷鍵也懶得用了&#xff0c;尤其是在win下面&#xff0c;還有圖形界面&#xff0c;所以個人覺得最有用的還是搜索類&…

Minimal coverage (貪心,最小覆蓋)

題目大意&#xff1a;先確定一個M&#xff0c; 然后輸入多組線段的左端和右端的端點坐標&#xff0c;然后讓你求出來在所給的線段中能夠 把[0, M] 區域完全覆蓋完的最少需要的線段數&#xff0c;并輸出這些線段的左右端點坐標。 思路分析&#xff1a; 線段區間的起點是0&#x…

vuex知識點

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式&#xff1b;集中存儲和管理應用的所有組件狀態。 狀態&#xff1a;什么是狀態&#xff0c;我們可以通俗的理解為數據。Vue只關心視圖層&#xff0c;那么視圖的狀態如何來確定&#xff1f;我們知道是通過數據驅動&#xff0c…

Kafka2.0生產者客戶端使用

1 初始化配置 Kafka 通過 KafkaProducer 構造器初始化生產者客戶端的配置。 ??常用的重要配置&#xff0c;詳見官網。 bootstrap.servers&#xff1a;Kafka 集群地址&#xff08;host1:post,host2:post&#xff09;&#xff0c;Kafka 客戶端初始化時會自動發現地址&#xff0…

vuex小例

少廢話&#xff0c;先出東西 vuex main.js import Vue from vue import App from ./App import router from ./router import store from ./store Vue.config.productionTip falsenew Vue({el: #app,router,store,render: xx>xx(App) })store.js 平級目錄未建文件夾import…

[論文筆記]CVPR2017_Joint Detection and Identification Feature Learning for Person Search

Title: Joint Detection and Identification Feature Learning for Person Search; aXiv上該論文的第一個版本題目是 End-to-End Deep Learning for Person SearchAuthors: Tong Xiao1* ; Shuang Li1* ; Bochao Wang2 ; Liang Lin2; Xiaogang Wang1 Affilations: 1.The Chines…

php下的原生ajax請求

瀏覽器中為我們提供了一個JS對象XMLHttpRequet&#xff0c;它可以幫助我們發送HTTP請求&#xff0c;并接受服務端的響應。 意味著我們的瀏覽器不提交&#xff0c;通過JS就可以請求服務器。ajax(Asynchronous Javascript And XML)其實就是通過XHR對象&#xff0c;執行HTTP請求。…

HBase性能優化總結

HBase性能優化方法總結&#xff08;一&#xff09;&#xff1a;表的設計 1. 表的設計 1.1 Pre-Creating Regions 默認情況下&#xff0c;在創建HBase表的時候會自動創建一個region分區&#xff0c;當導入數據的時候&#xff0c;所有的HBase客戶端都向這一個region寫數據&#x…

.NetCore如何使用ImageSharp進行圖片的生成

ImageSharp是對NetCore平臺擴展的一個圖像處理方案&#xff0c;以往網上的案例多以生成文字及畫出簡單圖形、驗證碼等方式進行探討和實踐。 今天我分享一下所在公司項目的實際應用案例&#xff0c;導出微信二維碼圖片&#xff0c;圓形頭像等等。 一、源碼獲取 Git項目地址&…

vue2工程

vue當然可以使用script標簽引入&#xff0c;不需任何依賴即可按照vue的語法進行使用。但中大型商用項目中&#xff0c;還是建議使用工程化方式使用vue&#xff0c;vue提供了官方腳手架vue-cli&#xff0c;可以快速構建vue項目&#xff0c;腳手架會幫助開發者創建好建議的工程目…

flutte的第一個hello world程序

用命令行創建項目&#xff1a; flutter create flutterdemo VSCode或者AS連接手機后 輸入 flutter run 編譯后就可以將默認的代碼顯示在手機上了 開始寫hello world 代碼&#xff0c;這段代碼寫在根目錄\lib\main.dart文件中&#xff0c;也是Flutter主文件。 整個代碼如下 impo…

Ajax 設置Access-Control-Allow-Origin實現跨域訪問

之前遇到的問題整理 ajax跨域訪問是一個老問題了&#xff0c;解決方法很多&#xff0c;比較常用的是JSONP方法&#xff0c;JSONP方法是一種非官方方法&#xff0c;而且這種方法只支持GET方式&#xff0c;不如POST方式安全。 即使使用jquery的jsonp方法&#xff0c;type設為POST…

vue工程webpack模板配置說明

vue工程webpack模板下的配置文件非常多&#xff0c;只能在實際開發過程中反復熟悉&#xff0c;才能漸漸體會官方將配置文件拆分細化的合理性。 主要配置文件中代碼的作用從網上摘錄了比較全的一份注釋&#xff0c;做下記錄。 dev-server.js 開發服務端配置 require(./check-v…

目錄的拼接

找到被拼接文件所在的目錄&#xff0c;然后進行拼接 import os 獲取當前目錄&#xff1a; os.path.dirname(__file__) 如下&#xff0c;被拼接文件所在目錄與當前目錄的上級目錄在同一文件夾下&#xff1a; os.path.join(os.path.dirname(os.path.dirname(__file__)),‘文件夾路…

vue-resource 攔截器(interceptor)的使用

攔截器-interceptor 在現代的一些前端框架上&#xff0c;攔截器基本上是很基礎但很重要的一環&#xff0c;比如Angular原生就支持攔截器配置&#xff0c;VUE的Axios模塊也給我們提供了攔截器配置&#xff0c;那么攔截器到底是什么&#xff0c;它有什么用&#xff1f;攔截器能幫…

【GamePlay】入門篇

【GamePlay】入門篇 游戲性編程是指通過一系列游戲系統將游戲想法變成現實的過程。 本次的簡例以NPC設計為主。 通常在進行腳本設計前&#xff0c;對NPC的屬性進行基本的添加和設定&#xff0c;諸如動畫系統、物理系統等等。 1.動畫系統 添加Animator組件&#xff0c;綁定骨骼。…

vue axios POST請求中參數以form data和request payload形式的原因

HTTP請求中&#xff0c;如果是get請求&#xff0c;那么表單參數以namevalue&name1value1的形式附到url的后面&#xff0c;如果是post請求&#xff0c;那么表單參數是在請求體中&#xff0c;也是以namevalue&name1value1的形式在請求體中。通過chrome的開發者工具可以看…