<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、cookie ~~~ /* ????1、設置cookie ????@param name string (cookie名) ????@param value string (cookie值) ????@param expires string (cookie有效期,單位秒) */ function setCookieFn(name, value, expires) { ????var date = new Date(); ????date.setTime(date.getTime() + expires*1000); ????document.cookie = name + '=' + value + ';expires='+date.toGMTString(); } ? /* ????2、獲取cookie ????@param name string (cookie名) */ function getCookieFn(name) { ????var arr,reg = new RegExp("(^| )"+name+"=([^;]*)(;|$)"); ????if(arr = document.cookie.match(reg)) { ????????return arr[2]; ????} else { ????????return null; ????} } ? /* ????3、刪除cookie ????@param name string (cookie名) */ function delCookieFn(name) { ????var date = new Date(); ????date.setTime(date.getTime() - 1); ????var value = getCookieFn(name); ????if(value != null) { ????????document.cookie= name + "="+value+";expires="+date.toGMTString(); ????} } ~~~ ## 二、localStorage ~~~ // 保存數據:localStorage.setItem(key,value); // 讀取數據:localStorage.getItem(key); // 刪除單個數據:localStorage.removeItem(key); // 刪除所有數據:localStorage.clear(); // 得到某個索引的key:localStorage.key(index); ~~~ ![](https://box.kancloud.cn/b95dc31f5a39c5e5d168538fd199dba8_818x189.png) ## 三、sessionStorage 方法同localStorage一樣,如: ~~~ sessionStorage.setItem('name', 'jack'); // sessionStorage.removeItem('name'); // sessionStorage.clear(); console.log(sessionStorage.getItem('name')); ~~~ ## 四、webSQL( 并不是 HTML5 規范的一部分 ) openDatabase(數據庫名稱, 版本號, 描述文本, 數據庫大小, 回調函數) ~~~ var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024); // 1、創建并插入 db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鳥教程")'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.zqh666.top")'); }); // 2、查詢 db.transaction(function (tx) { tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { var len = results.rows.length, i; msg = "<p>查詢記錄條數: " + len + "</p>"; document.querySelector('#status').innerHTML += msg; for (i = 0; i < len; i++){ alert(results.rows.item(i).log ); } }, null); }); ~~~ ## 五、IndexedDB **1、打開數據庫** ~~~ var request=window.indexedDB.open('testDB', 2); // 參數:數據庫名, 版本 ~~~ ![](https://box.kancloud.cn/4ab32548294a7a684166ba8629a205f5_792x348.png) onerror: 請求失敗的回調函數句柄 onsuccess:請求成功的回調函數句柄 onupgradeneeded:請求數據庫版本變化句柄 **2、刪除數據庫** ~~~ window.indexedDB.deleteDatabase('testDB'); ~~~ **3、關閉數據庫** ~~~ var testDB = window.indexedDB.open('testDB'); testDB.onsuccess = function(e) { e.target.result.close(); } ~~~ **4、對象存儲** ~~~ var testDB = window.indexedDB.open('testDB'); testDB.onsuccess = function(e) { if(!e.target.result.objectStoreNames.contains('profile')){ e.target.result.createObjectStore('profile' ,{keyPath: "id"}); } } ~~~ **5、完整代碼** ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>IndexedDB</title> </head> <body> <script type="text/javascript"> window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; function openDB (name,version) { var version=version || 1; var request=window.indexedDB.open(name,version); request.onerror=function(e){ console.log(e.currentTarget.error.message); }; request.onsuccess=function(e){ myDB.db=e.target.result; }; request.onupgradeneeded=function(e){ var db=e.target.result; if(!db.objectStoreNames.contains('students')){ var store=db.createObjectStore('students',{keyPath: 'id'}); store.createIndex('nameIndex','name',{unique:true}); store.createIndex('ageIndex','age',{unique:false}); } console.log('DB version changed to '+version); }; } function closeDB(db){ db.close(); } function deleteDB(name){ indexedDB.deleteDatabase(name); } function addData(db,storeName){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); for(var i=0;i<students.length;i++){ store.add(students[i]); } getDataByKey(db, storeName, 'name'); } function getDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); var request=store.get(value); request.onsuccess=function(e){ var student=e.target.result; console.log(student); }; } function updateDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); var request=store.get(value); request.onsuccess=function(e){ var student=e.target.result; student.age=35; store.put(student); }; } function deleteDataByKey(db,storeName,value){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); store.delete(value); } function clearObjectStore(db,storeName){ var transaction=db.transaction(storeName,'readwrite'); var store=transaction.objectStore(storeName); store.clear(); } function deleteObjectStore(db,storeName){ var transaction=db.transaction(storeName,'versionchange'); db.deleteObjectStore(storeName); } function fetchStoreByCursor(db,storeName){ var transaction=db.transaction(storeName); var store=transaction.objectStore(storeName); var request=store.openCursor(); request.onsuccess=function(e){ var cursor=e.target.result; if(cursor){ console.log(cursor.key); var currentStudent=cursor.value; console.log(currentStudent.name); cursor.continue(); } }; } function getDataByIndex(db,storeName){ var transaction=db.transaction(storeName); var store=transaction.objectStore(storeName); var index = store.index("ageIndex"); index.get(26).onsuccess=function(e){ var student=e.target.result; console.log(student.id); } } function getMultipleData(db,storeName){ var transaction=db.transaction(storeName); var store=transaction.objectStore(storeName); var index = store.index("nameIndex"); var request=index.openCursor(null,IDBCursor.prev); request.onsuccess=function(e){ var cursor=e.target.result; if(cursor){ var student=cursor.value; console.log(student.name); cursor.continue(); } } } var myDB={ name:'test', version:1, db:null }; openDB(myDB.name, myDB.version); var students=[{ id:1001, name:"Byron", age:24 },{ id:1002, name:"Frank", age:30 },{ id:1003, name:"Aaron", age:26 },{ id:1004, name:"Casper", age:26 }]; setTimeout(function() { for(var i=0,len=students.length; i<len; i++) { addData(myDB.db, 'students'); } }, 1000); </script> </body> </html> ~~~ 參考文章: [【傳送門】](http://www.cnblogs.com/dolphinX/p/3415761.html) [【傳送門2】](http://www.cnblogs.com/dolphinX/p/3416889.html) [【官方使用手冊】](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB) 謝謝關注~ 如有幫助可送幾毛小費,以資鼓勵,呵呵~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看