zoukankan      html  css  js  c++  java
  • HTML5权威指南 13.扩展的XMLHttpRequest API

     1 <!DOCTYPE html>
     2 <html>
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <title></title>
     7     <script type="text/javascript">
     8         window.indexedDB =window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
     9         window.IDBTransaction=window.IDBTransaction||window.webkitIDBTransaction || window.msIDBTransaction;
    10         window.IDBKeyRange =window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
    11         window.IDBCursor=window.IDBCursor||window.webkitIDBCursor || window.msIDBCursor;
    12         window.URL=window.URL||window.webkitURL;
    13         var dbName='imgDB';//数据库名
    14         var dbVersion =20170829;//版本号
    15         var idb;
    16         function init(){
    17             var dbConnect=indexedDB.open(dbName,dbVersion);//连接数据库
    18             dbConnect.onsuccess=function(e){//连接成功
    19                 idb=e.target.result;//获取数据库
    20             };
    21             dbConnect.onerror=function(){
    22                 alert("数据库连接失败");
    23             }
    24             dbConnect.onupgradeneeded=function(e){
    25                 idb=e.target.result;
    26                 var tx=e.target.transaction;
    27                 tx.onabort=function(e){
    28                     alert("对象仓库创建失败");
    29                 }
    30                 var name="img";
    31                 var optionalParameters={
    32                     keyPath:"id",
    33                     autoIncrement:true
    34                 };
    35                 var store=idb.createObjectStore(name,optionalParameters);
    36                 alert("对象创建仓库成功");
    37             }
    38         }
    39         
    40         function downloadPic(){
    41             var xhr=new XMLHttpRequest();
    42             xhr.open("GET","s1.jpg",true);
    43             xhr.responseType="arraybuffer";
    44             xhr.onload=function(e){
    45                 if(this.status==200){
    46                     var bb=new Blob([this.response]);
    47                     var reader=new FileReader();
    48                     reader.readAsDataURL(bb);
    49                     reader.onload=function(f){
    50                         var result=document.getElementById("result");
    51                         //在IndexDB数据库中保存二进制数据
    52                         var tx=idb.transaction(['img'],"readwrite");
    53                         tx.oncomplete=function(){alert("保存数据成功")}
    54                         tx.onabort=function(){alert("保存数据失败")}
    55                         var store=tx.objectStore("img");
    56                         var value={
    57                             img:this.result
    58                         }
    59                         store.put(value);
    60                     }
    61                 }
    62             };
    63             xhr.send();
    64         }
    65         function showPic(){
    66             var tx=idb.transaction(["img"],"readonly");
    67             var store=tx.objectStore("img");
    68             var req=store.get(1);
    69             req.onsuccess=function(){
    70                 if(this.result==undefined){
    71                     alert("没有符合条件的数据")
    72                 }else{
    73                     var ing=document.createElement("img");
    74                     img.src=this.result.img;
    75                     document.body.appendChild(img);
    76                 }
    77             }
    78             req.onerror=function(){
    79                 alert("获取数据失败");
    80             }
    81             
    82         }
    83     </script>
    84 </head>
    85 
    86 <body >
    87 
    88 </body>
    89 
    90 </html>

     

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function sendText() {
     9                 var txt = document.getElementById("text1").value;
    10                 var xhr = new XMLHttpRequest();
    11                 xhr.open("POST", "test/test", true);
    12                 xhr.responseType = "text";
    13                 xhr.onload = function(e) {
    14                     if(this.state == 200) {
    15                         document.getElementById("result").innerHTML = this.response;
    16                     }
    17                 }
    18                 xhr.send(txt);
    19             }
    20         </script>
    21     </head>
    22 
    23     <body>
    24         <h1>使用XMLHttpRequest对象向服务器发送字符串</h1>
    25         <form>
    26             <input type="text" name="" id="text1" value="" />
    27             <input type="button" value="发送数据" onclick="sendText();" />
    28 
    29         </form>
    30         <output id="result"></output>
    31     </body>
    32 
    33 </html>

     

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function sendForm() {
     9                 var form = document.getElementById("form1");
    10                 var formData=new FormData(form);
    11                 formData.append("add_data","测试");
    12                 var xhr = new XMLHttpRequest();
    13                 xhr.open("POST", "test/test", true);
    14                 xhr.responseType = "text";
    15                 xhr.onload = function(e) {
    16                     if(this.state == 200) {
    17                         document.getElementById("result").innerHTML = this.response;
    18                     }
    19                 }
    20                 xhr.send(formData);
    21             }
    22         </script>
    23     </head>
    24 
    25     <body>
    26         <h1>使用XMLHttpRequest对象向服务器发送字符串</h1>
    27         <form id="form1">
    28             <input type="text" name="name" placeholder="姓名"  /><br/>
    29             <input type="text" name="age"  placeholder="年龄" /><br/>
    30             <input type="button" value="发送数据" onclick="sendForm();" />
    31 
    32         </form>
    33         <output id="result"></output>
    34     </body>
    35 
    36 </html>

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function uploadFile() {
     9                 var formData=new FormData();
    10                 var files = document.getElementById("file1").files;
    11                 for (var i = 0; i < files.length; i++) {
    12                     var file=files[i];
    13                     formData.append("myfile[]",file);
    14                 }
    15                 var xhr = new XMLHttpRequest();
    16                 xhr.open("POST", "test/test", true);
    17                 xhr.responseType = "text";
    18                 xhr.onload = function(e) {
    19                     if(this.state == 200) {
    20                         document.getElementById("result").innerHTML = this.response;
    21                     }
    22                 }
    23                 xhr.send(formData);
    24             }
    25         </script>
    26     </head>
    27 
    28     <body>
    29         <h1>使用XMLHttpRequest对象向服务器发送字符串</h1>
    30         <form id="form1" enctype="multipart/form-data">
    31             请选择文件
    32             <input type="file" name="file1" id="file1" multiple="multiple" /><br />
    33             <input type="button" value="上传文件" onclick="uploadFile();" />
    34 
    35         </form>
    36         <output id="result"></output>
    37     </body>
    38 
    39 </html>

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             window.URL = window.URL || window.webkitURL;
     9 
    10             function uploadDocument() {
    11                 var bb = new Blob([document.documentElement.outerHTML]);
    12                 var xhr = new XMLHttpRequest();
    13                 xhr.open("POST", "test/test?fileName=" + getFileName(), true);
    14                 var progressBar = document.getElementById("progress");
    15 
    16                 xhr.upload.onprogress = function(e) {
    17                     if(e.lengthComputable) {
    18                         progressBar.value = (e.loaded / e.total) * 100;
    19                         document.getElementById("result").innerHTML = "已完成进度:" + progressBar.value + "%";
    20                     }
    21                 }
    22                 xhr.send(bb);
    23             }
    24             //获取当前文件的文件名
    25             function getFileName() {
    26                 var url=window.location.href;
    27                 var pos=url.lastIndexOf("\");
    28                 if(pos==-1)        //pos==-1 表示为本地文件
    29                     pos=url.lastIndexOf("/");//本地文件路径分割符"/"
    30                 var fileName=url.substring(pos+1);//从Url中获取文件名
    31                 return fileName;
    32                     
    33             }
    34         </script>
    35     </head>
    36 
    37     <body>
    38         <h1>像服务端发送Blob对象</h1>
    39         <input type="button" value="复制页面文件" onclick="uploadDocument();" />
    40         <progress min="0" max="100" value="0" id="progress"></progress>
    41         <output id="result"></output>
    42     </body>
    43 
    44 </html>

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function postArrayBuffer() {
     9                 var check = document.getElementsByName("check");
    10                 var tmpArray = new Array();
    11                 for(var i = 0; i < check.length; i++) {
    12                     if(check[i].checked)
    13                         tmpArray.push(i);
    14                 }
    15                 var buffer = new ArrayBuffer(tmpArray.length);
    16                 var bytearray = new Int8Array(buffer);
    17                 for(var i = 0; i < tmpArray.length; i++) {
    18                     bytearray[i] = tmpArray[i];
    19                 }
    20                 var xhr = new XMLHttpRequest();
    21                 xhr.open("POST", "putData/test", true);
    22                 xhr.send(buffer);
    23             }
    24         </script>
    25     </head>
    26 
    27     <body>
    28         <input type="button" name="" onclick="postArrayBuffer()" id="" value="提交" />
    29         <input type="checkbox" name="check" />数据1<br/>
    30         <input type="checkbox" name="check" />数据2<br/>
    31         <input type="checkbox" name="check" />数据3<br/>
    32         <input type="checkbox" name="check" />数据4<br/>
    33         <input type="checkbox" name="check" />数据5<br/>
    34         <input type="checkbox" name="check" />数据6<br/>
    35         <input type="checkbox" name="check" />数据7<br/>
    36         <input type="checkbox" name="check" />数据8<br/>
    37         <input type="checkbox" name="check" />数据9<br/>
    38         <input type="checkbox" name="check" />数据10
    39     </body>
    40 
    41 </html>

     1 <!DOCTYPE html>
     2 <html>
     3 
     4     <head>
     5         <meta charset="UTF-8">
     6         <title></title>
     7         <script type="text/javascript">
     8             function getArrayBuffer() {
     9                 var check = document.getElementsByName("check");
    10                 var xhr = new XMLHttpRequest();
    11                 xhr.open("GET", "getData.php", true);
    12                 xhr.responseType = "arraybuffer";
    13                 xhr.onload = function(e) {
    14                     if(this.status == 200) {
    15                         var bytearray = new Int8Array(this.response);
    16                         for(var i = 0; i < bytearray.byteLength; i++) {
    17                             check[bytearray[i]].checked = true;
    18                         }
    19                     }
    20                 };
    21                 xhr.send();
    22             }
    23         </script>
    24     </head>
    25 
    26     <body>
    27         <input type="button" name="" onclick="getArrayBuffer()" id="" value="提交" />
    28         <input type="checkbox" name="check" />数据1<br/>
    29         <input type="checkbox" name="check" />数据2<br/>
    30         <input type="checkbox" name="check" />数据3<br/>
    31         <input type="checkbox" name="check" />数据4<br/>
    32         <input type="checkbox" name="check" />数据5<br/>
    33         <input type="checkbox" name="check" />数据6<br/>
    34         <input type="checkbox" name="check" />数据7<br/>
    35         <input type="checkbox" name="check" />数据8<br/>
    36         <input type="checkbox" name="check" />数据9<br/>
    37         <input type="checkbox" name="check" />数据10
    38     </body>
    39 
    40 </html>

  • 相关阅读:
    Laravel自定义分页样式
    mysql中 key 、primary key 、unique key 和 index 有什么不同
    PHP RSA公私钥的理解和示例说明
    PHP操作Excel – PHPExcel 基本用法
    Yii 1.1 常规框架部署和配置
    阿里云服务器 Ubuntu 安装 LNMP
    全国地区sql表
    十道海量数据处理面试题与十个方法大总结
    Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别
    乐观锁与悲观锁——解决并发问题
  • 原文地址:https://www.cnblogs.com/wingzw/p/7450006.html
Copyright © 2011-2022 走看看