成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PhoneGap API介紹:Storage

移動開發
本文將介紹PhoneGap API——Storage:截獲設備的本地存儲選項。Storage提供對設備的存儲選項的訪問。此API基于W3C WEB SQL Database Specification和W3C Web Storage API Specification。有些設備已經提供了對該規范的實現,對于這些設備采用內置實現而非使用PhoneGap的實現。對于沒有存儲支持的設備,PhoneGap的實現應該是完全兼容W3C規范。

方法

參數

對象:

 openDatabase

  • 返回一個新的Database對象。
  1. var dbShell = window.openDatabase(name, version, display_name, size); 

說明

  • window.openDatabase返回一個新的Database對象。
  • 該方法將創建一個新的SQL Lite數據庫,并返回該Database對象。可使用該Database對象操作數據。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

簡單的范例

  1. var db = window.openDatabase("test""1.0""Test DB", 1000000); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.     var db = window.openDatabase("test", "1.0", "Test DB", 1000000); 
  15.  
  16. </script> 
  17. </head> 
  18. <body> 
  19.     <h1>Example</h1> 
  20.     <p>Open Database</p> 
  21. </body> 
  22. </html> 

name
數據庫的名稱。
version

  • 數據庫的版本號。

display_name

  • 數據庫的顯示名。

size

  • 以字節為單位的數據庫大小。

Database

  • 包含允許用戶操作數據庫的方法。

方法

  • transaction:運行一個數據庫事務。
  • changeVersion:該方法允許腳本執行以下原子操作:校驗數據庫的版本號并更新版本號以完成架構更新。

詳述

  • 調用window.openDatabase()將返回一個Database對象。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Transaction 的簡單范例

  1. function populateDB(tx) { 
  2.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  3.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  4.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  5.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  6.  
  7. function errorCB(err) { 
  8.        alert("Error processing SQL: "+err.code); 
  9.  
  10. function successCB() { 
  11.        alert("success!"); 
  12.  
  13. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  14. db.transaction(populateDB, errorCB, successCB); 
  15. Change Version的簡單范例: 
  16.  
  17. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  18. db.changeVersion("1.0""1.1"); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // PhoneGap加載完畢 
  13.     function onDeviceReady() { 
  14.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  15.         db.transaction(populateDB, errorCB, successCB); 
  16.     } 
  17.      
  18.     // 填充數據庫 
  19.     function populateDB(tx) { 
  20.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  21.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  22.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  23.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  24.     } 
  25.      
  26.     // 事務執行出錯后調用的回調函數 
  27.     function errorCB(tx, err) { 
  28.         alert("Error processing SQL: "+err); 
  29.     } 
  30.      
  31.     // 事務執行成功后調用的回調函數 
  32.     function successCB() { 
  33.         alert("success!"); 
  34.     } 
  35.  
  36. </script> 
  37. </head> 
  38. <body> 
  39.     <h1>Example</h1> 
  40.     <p>Database</p> 
  41. </body> 
  42. </html> 

Android 1.X 的特異情況

  • changeVersion:Android 1.X設備不支持此方法。

SQLTransaction

  • 包含允許用戶對Database對象執行SQL語句的方法。

方法

  • executeSql:執行一條SQL語句。

詳述

  • 當你調用Database對象的transaction方法后,其回調函數將被調用并接收一個SQLTransaction對象。用戶可以通過多次調用executeSql來建立一個數據庫事務處理。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function populateDB(tx) { 
  2.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  3.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  4.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  5.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  6.  
  7. function errorCB(err) { 
  8.        alert("Error processing SQL: "+err); 
  9.  
  10. function successCB() { 
  11.        alert("success!"); 
  12.  
  13. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  14. db.transaction(populateDB, errorCB, successCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.        var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  15.        db.transaction(populateDB, errorCB, successCB); 
  16.  
  17. // 填充數據庫 
  18. function populateDB(tx) { 
  19.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  20.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  21.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  22.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  23.  
  24. // 事務執行出錯后調用的回調函數 
  25. function errorCB(err) { 
  26.        alert("Error processing SQL: "+err); 
  27.  
  28. // 事務執行成功后調用的回調函數 
  29. function successCB() { 
  30.        alert("success!"); 
  31.  
  32. </script> 
  33. </head> 
  34. <body> 
  35.     <h1>Example</h1> 
  36.     <p>SQLTransaction</p> 
  37. </body> 
  38. </html> 

SQLResultSet

  • 當SQLTransaction對象的executeSql方法被調用,將會觸發executeSql中設定的回調函數并返回一個SQLResultSet對象。

屬性

  • insertId:SQLResultSet對象通過SQL語句插入到數據庫的行記錄的行ID。[譯注:如果插入多行的時候,返回***一個行的ID]
  • rowAffected:被SQL語句改變的記錄行數,如果語句沒有影響任何行則設置為0。
  • rows:是一個SQLResultSetRowList對象,表示返回的多條記錄。如果沒有返回任何記錄,則此對象為空。

詳述

  • 當你調用SQLTransaction對象的executeSql方法,將會觸發executeSql中設定的回調函數并返回一個SQLResultSet對象。該結果對象包含三個屬性:***個是insertID返回成功的SQL插入語句所插入行的ID,如果SQL語句不是插入語句則insertID將不被設定;第二個是rowAffected,在SQL查詢操作時此屬性總是0,當插入或更新操作時此屬性返回受到影響的行數;***一個屬性是SQLResultSetList類型,返回SQL查詢語句的返回數據。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function queryDB(tx) { 
  2.     tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  3.  
  4. function querySuccess(tx, results) { 
  5.     // 因為沒有插入記錄,所以返回值為空 
  6.     console.log("Insert ID = " + results.insertId); 
  7.     // 因為這是一條查詢語句所以返回值為0 
  8.     console.log("Rows Affected = " + results.rowAffected); 
  9.     // 返回查詢到的記錄行數量 
  10.     console.log("Insert ID = " + results.rows.length); 
  11.  
  12. function errorCB(err) { 
  13.     alert("Error processing SQL: "+err.code); 
  14.  
  15. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  16. db.transaction(queryDB, errorCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // 填充數據庫 
  13.     function populateDB(tx) { 
  14.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  15.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  16.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  17.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  18.     } 
  19.      
  20.     // 查詢數據庫 
  21.     function queryDB(tx) { 
  22.         tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  23.     } 
  24.      
  25.     // 查詢成功后調用的回調函數 
  26.     function querySuccess(tx, results) { 
  27.         // 因為沒有插入記錄,所以返回值為空 
  28.         console.log("Insert ID = " + results.insertId); 
  29.         // 因為這是一條查詢語句所以返回值為0 
  30.         console.log("Rows Affected = " + results.rowAffected); 
  31.         // 返回查詢到的記錄行數量 
  32.         console.log("Insert ID = " + results.rows.length); 
  33.     } 
  34.      
  35.     // 事務執行出錯后調用的回調函數 
  36.     function errorCB(err) { 
  37.         console.log("Error processing SQL: "+err.code); 
  38.     } 
  39.      
  40.     // 事務執行成功后調用的回調函數 
  41.     function successCB() { 
  42.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  43.         db.transaction(queryDB, errorCB); 
  44.     } 
  45.      
  46.     // PhoneGap加載完畢 
  47.     function onDeviceReady() { 
  48.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  49.         db.transaction(populateDB, errorCB, successCB); 
  50.     } 
  51.  
  52. </script> 
  53. </head> 
  54. <body> 
  55.     <h1>Example</h1> 
  56.     <p>Database</p> 
  57. </body> 
  58. </html> 

SQLResultSetList

  • SQLResultSet對象的一個屬性,包含SQL查詢所返回的所有行數據。

屬性

  • length: SQL查詢所返回的記錄行數。

方法

  • item:根據指定索引返回一個行記錄的JavaScript對象。

詳述

  • SQlResultSetList包含一個SQL查詢語句所返回的數據。該對象包含一個長度屬性告知用戶有多少符合查詢條件的行記錄數被返回。通過傳遞指定的索引給該對象的item方法獲取指定的行記錄數據,此item方法返回一個JavaScript對象,其屬性包含前述查詢語句所針對的數據庫的所有列。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function queryDB(tx) { 
  2.        tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  3.  
  4. function querySuccess(tx, results) { 
  5.        var len = results.rows.length; 
  6.        console.log("DEMO table: " + len + " rows found."); 
  7.        for (var i=0; i<len; i++){ 
  8.            console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " + results.rows.item(i).data); 
  9.        } 
  10.  
  11. function errorCB(err) { 
  12.        alert("Error processing SQL: "+err.code); 
  13.  
  14. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  15. db.transaction(queryDB, errorCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // 填充數據庫 
  13.     function populateDB(tx) { 
  14.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  15.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  16.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  17.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  18.     } 
  19.      
  20.     // 查詢數據庫 
  21.     function queryDB(tx) { 
  22.         tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  23.     } 
  24.      
  25.     // 查詢成功后調用的回調函數 
  26.     function querySuccess(tx, results) { 
  27.         var len = results.rows.length; 
  28.         console.log("DEMO table: " + len + " rows found."); 
  29.         for (var i=0; i<len; i++){ 
  30.             console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " + results.rows.item(i).data); 
  31.         } 
  32.     } 
  33.      
  34.     // 事務執行出錯后調用的回調函數 
  35.     function errorCB(err) { 
  36.         console.log("Error processing SQL: "+err.code); 
  37.     } 
  38.      
  39.     // 事務執行成功后調用的回調函數 
  40.     function successCB() { 
  41.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  42.         db.transaction(queryDB, errorCB); 
  43.     } 
  44.      
  45.     // PhoneGap加載完畢 
  46.     function onDeviceReady() { 
  47.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  48.         db.transaction(populateDB, errorCB, successCB); 
  49.     } 
  50.  
  51. </script> 
  52. </head> 
  53. <body> 
  54.     <h1>Example</h1> 
  55.     <p>Database</p> 
  56. </body> 
  57. </html> 

SQLError

  • 出現錯誤時,將拋出一個SQLError對象。

屬性

  • code: 一個在下面常量列表中定義好的錯誤代碼c。
  • message:關于此錯誤的說明。

常量

  • SQLError.UNKNOWN_ERR:未知錯誤
  • SQLError.DATABASE_ERR:數據庫錯誤
  • SQLError.VERSION_ERR:版本錯誤
  • SQLError.TOO_LARGE_ERR:數據集過大錯誤
  • SQLError.QUOTA_ERR:超過數據庫配額錯誤
  • SQLError.SYNTAX_ERR:語法錯誤
  • SQLError.CONSTRAINT_ERR:約束錯誤
  • SQLError.TIMEOUT_ERR:超時錯誤

說明

  • 操作數據庫出現錯誤時,將拋出一個SQLError對象。

localStorage

  • 提供對W3C Storage接口(http://dev.w3.org/html5/webstorage/#the-localstorage-attribute)的訪問。
  1. var storage = window.localStorage; 

方法

  • key:返回指定位置的鍵的名稱。
  • getItem: 返回指定鍵所對應的記錄。
  • setItem:存儲一個鍵值對。
  • removeItem:刪除指定鍵對應的記錄。
  • clear:刪除所有的鍵值對。

詳述

  • localStorage提供對W3C Storage接口的訪問,可以使用鍵值對的方式存儲數據。

支持的平臺

  • Android
  • BlackBerry WebWorks(OS 6.0或更高版本)
  • iPhone

Key 的簡單范例

  1. var keyName = window.localStorage.key(0); 

Set Item的簡單范例

  1. window.localStorage.setItem("key""value"); 

Get Item的簡單范例

  1. var value = window.localStorage.getItem("key"); 
  2. // value的值現在是"value" 

Remove Item的簡單范例

  1. window.localStorage.removeItem("key"); 

Clear的簡單范例

  1. window.localStorage.clear(); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.        window.localStorage.setItem("key", "value"); 
  15.        var keyname = window.localStorage.key(i); 
  16.        [譯注:應當是var keyname = window.localStorage.key(0);] 
  17.        // keyname的值現在是“key” 
  18.        var value = window.localStorage.getItem("key"); 
  19.        // value的值現在是“value” 
  20.        window.localStorage.removeItem("key"); 
  21.        window.localStorage.setItem("key2", "value2"); 
  22.        window.localStorage.clear(); 
  23.        // localStorage現在是空的 
  24.  
  25. </script> 
  26. </head> 
  27. <body> 
  28.     <h1>Example</h1> 
  29.     <p>localStorage</p> 
  30. </body> 
  31. </html> 

 

責任編輯:佚名 來源: PhoneGap中國
相關推薦

2011-12-19 15:30:25

AccelerometPhoneGap AP

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-20 13:32:52

PhoneGap APContacts

2011-12-20 16:09:57

PhoneGap APDevice

2011-12-21 21:56:45

PhoneGap APFile

2011-12-22 09:54:40

PhoneGap APMedia

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-20 15:34:55

PhoneGap APConnection

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-20 17:15:52

PhoneGap APEvents

2011-12-20 11:20:46

PhoneGap APCompass

2011-12-19 16:09:32

PhoneGap APCamera

2011-12-30 14:05:17

PhoneGap APConnection視頻

2011-12-30 14:13:05

PhoneGap APCamera視頻

2011-12-30 14:16:02

AccelerometPhoneGap AP視頻

2011-12-30 13:59:38

PhoneGap APDevice視頻

2011-12-30 13:47:57

PhoneGap AP視頻Contacts

2011-12-30 14:09:32

PhoneGap APCompass視頻

2011-09-13 14:07:45

PhoneGap AP

2011-07-05 17:29:53

PhoneGapevents
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩亚洲国产 | 久久成人高清视频 | 刘亦菲国产毛片bd | 亚洲成人一区二区三区 | 国产午夜亚洲精品不卡 | 日韩电影中文字幕在线观看 | 亚洲成人a v | www.久久.com| 成人影| 久久亚洲精品国产精品紫薇 | 亚洲三级av| 男人天堂网址 | www.黄色网| 精品国产一区二区三区久久久蜜月 | 日韩欧美一区二区三区免费观看 | av中文在线播放 | 超碰91在线 | 欧美自拍日韩 | 中日韩av | 一级特黄网站 | 国产精品a久久久久 | 国产96色在线 | 国产超碰人人爽人人做人人爱 | 狠狠干美女| 欧美一级片在线观看 | 国产精品精品视频一区二区三区 | 桃花av在线 | 久久91精品| 嫩草视频在线 | 国产精品久久久久久久久久久久午夜片 | 一区二区三区中文字幕 | 一级片在线观看视频 | 中国黄色在线视频 | 无码一区二区三区视频 | 日韩在线播放网址 | 亚洲精品欧美 | 久久久久精 | 精品免费国产一区二区三区四区介绍 | 中文字幕国 | 日日干夜夜操 | 一级毛片在线播放 |