• 本地存储


      HTML4使用Cookie来存储简单的数据。但Cookie有以下限制:大多数浏览器支持最大为4096字节的Cookie;浏览器还限制站点可以在用户计算机上存储的Cookie的数量,则最旧的Cookie将被丢弃;有些浏览器还会对他们将接受的来自所有站点的Cookie总数做出绝对限制,通常为300个;Cookie默认情况会随着Http请求发送到后台服务器,但并不是所有请求都需要Cookie。

      HTML5通过JS的新的API直接存储大量数据到客户端浏览器,支持复杂的本地数据库,让JS更有效率。HTML5支持两种WebStorage:永久性的本地存储(localStorage)和会话级别的本地存储(sessionStorage)。

      永久性的本地存储(localStorage)

     localStorage提供了四个方法来辅助我们进行本地存储做相关操作:setItem(key, value)添加本地存储数据。  getItem(key)通过key获取相应的value   removeItem(key)通过key删除本地数据   clear()情况数据

     <script type="text/javascript">

      localStorage.setItem("demokey", "http://www.shiyanlou.com");

      var dt = localStorge.getItem("demoKey");

      localStorage.clear();

     </script>

      会话级别的本地存储(sessionStorage)

     通过sessionStorage可以直接操作存储在浏览器中的会话级别的WebStorage。存储在sessionStorage中的数据首先是Key-Value形式的,另外是它跟浏览器当前会话相关,当回话结束后,数据会自动清楚,跟未设置过期时间的Cookie类似。sessionStorage提供了四个方法来辅助我们进行本地数据存储做相关操作:setItem(key, value)添加本地存储数据。  getItem(key)通过key获取相应的value   removeItem(key)通过key删除本地数据  clear()清空数据

     <script type="text/javascript">

       sessionStorage.setItem("demoKey", "http://blog.itjeek.com");

       var dt = sessionStorage.getItem("demoKey");

       sessionStorage.clear();

     </script>

      HMT5本地数据库

     HTML5提供了一个浏览器端数据库支持,允许我们直接通过JS的API在浏览器端创建一个本地的数据库,而且支持标准的SQL的CRUD操作,让离线的Web应用更加方便的存储结构化的数据。

     操作本地数据库的最基本步骤:创建一个访问数据库的对象(openDatabase);使用openDatabase对象来执行transaction方法,通过次方法可以实质一个开启事务成功的事件响应方法,在事件响应方法中可以执行SQL;通过executeSql方法执行查询。

     openDatabase方法打开一个已存在的数据库,若数据库不存在,它还可以创建一个数据库。

     var database = openDatabas("student", "1.0", "学生表", 1024*1024, function(){}); //参数分别对应数据库名称、数据库版本号、对数据库的描述、设置分配的数据库大小(单位是kb)、回调函数。

     db.transaction方法可以设置一个回调函数,此函数可以接受一个参数使我们开启事务的对象,然后通过此对象执行SQL。

     ts.executeSql(sqlQuery, [value1, value2..], dataHandler, errorHandler) //参数分别对应需要具体执行的sql语句(可以是create、select、update、delete)、sql语句中所有使用的参数的数组,在executeSql方法中,将s>语句中所要使用的参数先用?代替,然后一次将这些参数组成数组放在[]中、执行成功时调用的回调函数,通过该函数可以获得查询结果集、执行失败时的回调函数。

     <head>

      <script type="jquert-1.5.1.js' type="text/javascript">

        function initDatabase(){

          var db = getCurrentDb();

          if(!db)

           alert("您的浏览器不支持HTML5");

          db.transaction(function(trans){

            trans.executeSql("create table if not exists Demo(uName text null, title text null, words text null)", [], function(trans, result){}, function(trans, message){}, function(trans, result){}, function(trans, message){});

          });

        }

        

        $(function(){

          initDatabase();

          $("#btnSave").click(function(){

            var txtName = $("#txtName").val();

            var txtTitle = $("#txtTitle").val();

            var txtWords = $("txtWords").val();

            db.transaction(function(trans){

              trans.executeSql("insert into Demo(uName, title, words) values(? , ? , ?)", [txtName, txtTitle, txtWords], function(ts,data){}, function(ts, message){

                alert(message);

              });

            });

            showAllTheData();

          });

        });

        function getCurrentDb(){

          var db = openDatabase("myDb", "1.0", "it's to save demo data", 1024*1024);

          return db;

        }

        function showAllTheData(){

          $("tblData").empty();

          var db =getCurrentDb();

          db.transaction(function(trans){

            trans.executeSql("select * from Demo", [],  function(ts, data){

              if(data){

                for(var i=0 ; i < data.rows.length; i++){

                  appendDataToTable(data.rows.item(i));

                }

              }

            },function(ts, message){

              alert(message);

            });

          });

        }

        function appendDateToTable(data){

          var txtName = data.uName;

          var txtTitle = data.title;

          var words = data.words;

          var strHtml = "";

          strHtml += "<tr>";

          strHtml += "<td>"+txtName+"</td>";

          strHtml += "<td>"+txtTitle+"</td>";

          strHtml += "<td>"+words+"</td>";

          strHtml += "</tr>";

          $("#tblDate").append(strHtml);

        }

      </script>

     </head>
     <body>

       <table>

         <tr>

           <td>用户名</td>

           <td><input type="text" name="txtName" id="txtName" required/></td>

         </tr>

         <tr>

           <td>标题:</td>

           <td><input type="text" name="txtTitle" id="txtTitle" required/></td>

         </tr>

         <tr>

           <td>留言:</td>

            <td><input type="text" name="txtWords" id="txtWords" required/></td> </tr>

       </table>

       <input type="button" value="保存" id="btnSave"/>

       <hr/>

       <input type="button" value="展示所哟数据" onclick="showAllTheData();"/>  

       <table id="tblData">

       </table>

     </body>

     

  • 相关阅读:
    ORM数据库框架 SQLite ORMLite MD
    ORM数据库框架 greenDAO SQLite MD
    layer-list shape drawable 层叠背景 MD
    BAT 批处理 特殊符号 总结 [MD]
    集合 enum 枚举 简介 案例 [MD].md
    Gradle 翻译 ProGuard Shrink 混淆和压缩 [MD]
    构建配置 Enable multidex
    构建配置 defaultConfig signingConfigs buildTypes productFlavors dependencies
    Android 资源混淆 AndResGuard MD
    Android 第三方加固方案 对比 打包 [MD]
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/4809716.html
Copyright © 2020-2023  润新知