金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > GET和POST请求的区别,Get请求与Post请求的区别

GET和POST请求的区别,Get请求与Post请求的区别

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-14 01:42

即选取了 https 也毫无通过 query strings 传敏感数据

2017/10/16 · 基础才具 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁止转发!
俄文出处:HttpWatch。接待参加翻译组。

劳务器端的 log 将公开记下完整 url;浏览器上的拜谒历史也会公开记下完整 url;Referrer headers 里也忠实记下完全 url,然后在外人家的 GoogleAnalytics 上海展览中心示。

大家常常听到的二个周围难题是:“URL 中的参数是或不是能够高枕无忧地传递到平安网址?”那几个标题平常现身在顾客看了 HttpWatch 捕获的 HTTPS 央求后,想清楚还应该有哪个人能够观望那一个数量。

 

例如,要是在二个询问中,使用如下安全的 URL 传递密码字符串:

HttpWatch 能够显得安全央求的从头到尾的经过,因为它与浏览器集成,由此它亦可在 HTTPS 请求的 SSL 连接对数据加密从前查看数据。金沙棋牌官方平台 1

假如你选择互联网嗅探器查看,举个例子 Network Monitor,对于同一个央浼,你只可以够查阅加密其后的多寡。在多少包追踪中向来不可知的网站,标题或内容:

金沙棋牌官方平台 2

你能够信任 HTTPS 诉求是安全的,只要:

  • 未忽略任何SSL证书警告
  • Web 服务器用于运转 SSL 连接的私钥在 Web 服务器本身之外不可用。

于是,在网络范围,URL 参数是平安的,可是还应该有一点点别的依照 URL 泄漏数据的法子:

  1. URL 存款和储蓄在 Web 服务器日志中–平时种种央浼的欧洲经济共同体 URL 都被寄存在服务器日志中。那象征 URL 中的任何敏感数据(举个例子密码)会以公开方式保留在服务器上。以下是行使查询字符串通过 HTTPS 发送密码时存款和储蓄在 httpwatch.com 服务器日志中的条目款项: **二〇〇八-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 … 经常认为就是是在服务器上,储存明文密码向来都不是好主张 2.URLs are stored in the browser history – browsers save URL parameters in their history even if the secure pages themselves are not cached. Here’s the IE history displaying the URL parameter:
  2. URL 存款和储蓄在浏览器历史记录中–即便安全网页本身未缓存,浏览器也会将 URL 参数保存在其历史记录中。以下是 IE 的历史记录,突显了 URL 的伸手参数:金沙棋牌官方平台 3

只要客户成立书签,查询字符串参数也将被存放。

  1. URLReferrer 须要头中被传送–若是贰个安然还是网页使用能源,比方 javascript,图片也许剖析服务,URL 将通过 Referrer 央求头传递到每三个放置对象。临时,查询字符串参数可能被传送并寄放在第三方站点。在 HttpWatch 中,你能够看出大家的密码字符串正被发送到 Google Analytics金沙棋牌官方平台 4

结论

减轻这些难题亟待两步:

  • 只有在相对少不了的场地下传递敏感数据。一旦客商被注明,最棒使用全数有限生命周期的会话 ID 来标志它们。

使用会话层级的 cookies 传递音讯的帮助和益处是:

  • 它们不会蕴藏在浏览器历史记录中或磁盘上
  • 它们平日不存款和储蓄在服务器日志中
  • 它们不会传递到嵌入式财富,比如图片或 JavaScript
  • 它们仅适用于央浼它们的域和门路

以下是我们的在线集团中,用于识别客商的 ASP.NET 会话 cookie 示例:

金沙棋牌官方平台 5

请注意,cookie 被界定在域 store.httpwatch.com,况兼在浏览器会话甘休时过期(即不会蕴藏到磁盘)。

您本来能够因此 HTTPS 传递查询字符串,可是不要在或许出现安全题材的风貌下使用。举个例子,你可以高枕而卧的运用它们展现部分数字大概项目,像 accountview 或者 printpage,不过不用接纳它们传递密码,银行卡号码或许别的不该公开的新闻。

1 赞 收藏 评论

转载自

h5新特点总览

Http方法:Get央求与Post央浼的界别

有关小编:xiaoheike

金沙棋牌官方平台 6

简单介绍还没赶趟写 :) 个人主页 · 作者的文章 · 10金沙棋牌官方平台, ·      

金沙棋牌官方平台 7

Get是向服务器发索取多少的一种诉求,而Post是向服务器交由数据的一种央浼;

<a name="t1"></a><a target="_blank" name="t1" style="color:rgb(12,137,207)"></a>移除的因素

纯表现的成分:

basefont、big、center、font等

对可用性产生负面影响的要素:

frame、frameset、noframes

Get是向服务器发索取多少的一种央求,而Post是向服务器交由数据的一种央浼。

Get是获撤除息,并不是修改新闻,类似数据库查询效用雷同,数据不会被退换;

<a name="t2"></a><a target="_blank" name="t2" style="color:rgb(12,137,207)"></a>新增的API

语义:

能够让您更恰本地描述您的剧情是什么。

连通性:

能够令你和服务器之间通过立异的新技术格局开展通讯(web sockets等)。

离线 & 存储:

可见让网页在顾客端本地存款和储蓄数据以及更急忙地离线运维(离线能源、在线和离线事件、DOM存款和储蓄、IndexDB、自web应用程序中利用文件[FileReader])。

多媒体:

使 video 和 audio 成为了在具有 Web 中的一等平民。

2D/3D 绘图 & 效果:

提供了四个特别分歧范围的展现选拔(canvas、webGL)。

性能 & 集成:

提供了丰盛醒指标性质优化和更管用的Computer硬件应用(WebWorkers、XMLHttpRequest2、HistoryAPI、拖放、requestAnimationFrame、全屏API、指针锁定API、在线和离线事件)。

配备访谈 Device Access:

能够管理种种输入和输出设备(触控事件touch、使用地理地点一定、检验设备方向)。

Get是获取音信,并非修改音讯,类似数据库查询作用雷同,数码不会被修改。

Get央浼的参数会跟在url后张开传递,央求的数额会附在U逍客L之后,以?分割UWranglerL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假诺数据是英语字母/数字,原样发送,假诺是空格,转变为+,如若是华语/别的字符,则一贯把字符串用BASE64加密。

<a name="t3"></a><a target="_blank" name="t3" style="color:rgb(12,137,207)"></a>部分API详述

是因为篇幅较长,能够挑选感兴趣的片段阅读
仓储机制
File API
Web Worker
history对象
2D绘图(canvas和svg)
H5的兼容性

Get恳请适用于安全的互动行为就是那多少个你能够频仍发起呼吁而不会拉动副功效的央求。**Post央求适用于不安全的互工行为*意思是每一个伸手都会招致服务器端爆发某种变化,而重新诉求只怕会推动难点。*

Get传输的数量有大大小小限制,因为GET是因而UPAJEROL提交数据,那么GET可提交的数据量就跟U途观L的长度有平昔关联了,不一样的浏览器对UKugaL的尺寸的限定是例外的。

<a name="t4"></a><a target="_blank" name="t4" style="color:rgb(12,137,207)"></a>web存款和储蓄机制

Web Storage的目标是制伏由cookie带来的有的范围,当数码须要被严控在客商端上时,无需不断地将数据发回服务器。Web Storage的多少个关键指标是:提供一种在cookie之外部存款和储蓄器储会话数据的门路;提供一种存款和储蓄大量足以跨会话存在的数据机制。最早的Web Storage标准包涵了二种对象的定义:sessionStorage和globalStorage。那五个目的在支撑的浏览器中都以以windows对象属性的情势存在的。

Get诉求的参数会跟在url后举办传递,伏乞的数额会附在U猎豹CS6L之后,以?分割U福睿斯L和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,倘诺数据是英语字母/数字,原样发送,倘使是空格,转变为+,借使是华语/别的字符,则一向把字符串用BASE64加密。

GET恳求的数量会被浏览器缓存起来,顾客名和密码将公开出现在UHavalL上,别的人能够查到历史浏览记录,数据不太安全。在劳务器端,用Request.QueryString来赢得Get格局提交来的多少;

<a target="_blank" name="t5" style="color:rgb(12,137,207)"></a>sessionStorage对象

sessionStorage对象存款和储蓄特定于某些会话的数额,相当于该数量只维系到浏览器关闭。这几个目的就如会话cookie,也会在浏览器关闭后未有。存储在sessionStorage中的数据能够超过页面刷新而留存,相同的时间纵然浏览器支持,浏览器崩溃天公地道启之后仍旧可用(FireFox和WebKit都协理,IE不帮忙)
因为sessionStorage对象绑定于某些服务器会话,所以当文件在本地运维的时候是不可用的,存款和储蓄在sessionStorage中的数据只可以由最早给指标存款和储蓄数据的狠毒访谈到,所以对多页面使用有限制。
sessionStorage对象能够利用setItem()可能直接设置新的习性来存款和储蓄数据

//使用sessionStorage方法存储数据
sessionStorage.setitem('name','Nicholas');
//使用属性存储数据
sessionStorage.book = 'Profession JavaScript';

分裂浏览器写入数据方面略有区别。FireFox和WebKit达成了联合写入,所以加多到存款和储蓄空间中的数据时立即被交给的。而IE的完结则是异步写入数据,所以在安装数据和将数据实际上写入磁盘之间可能有一部分延缓。对于一点点数据来讲,那么些距离是能够忽略的。对于大气数量,IE要比其余浏览器更快的还原实施,因为它会跳过其实的磁盘写入进程
在IE8中能够强制把数据写入磁盘:在设置新数据此前运用begin()方法,并且在富有安装达成后调用commit()方法

sessionStorage.begin();//确保在这段代码执行的时候不会发生其他磁盘写入操作
sessionStorage.setitem('name','Nicholas');
sessionStorage.book = 'Profession JavaScript';
sessionStorage.commit();

sessionStorage中有数据时,能够动用getItem()也许通过一向访谈属性名来获取数据。

//使用方法读取数据
var name = sessionStorage.getItem('name');
//使用属性读取数据
var book = sessionStorage.book;

还是能够透过结合length属性和key()方法来迭代sessionStorage的值。

for(var i = 0,len = sessionStorage.length; i < len; i++){
    var key = sessionStorage.key(i);
    var value = sessionStorage.getItem(key);
    alert(key + "=" + value);
}

要从sessionStorage中剔除数据能够动用delete操作符删除对象属性,也足以调用removeItem()方法。

delete sessionStorage.name;
sessionStorge.removeItem('book');

Get传输的数占领大大小小限制,因为GET是经过ULANDL提交数据,那么GET可提交的数据量就跟UOdysseyL的尺寸有一贯关乎了,分裂的浏览器对U昂科拉L的长短的限量是例外的。

Post央浼则作为http音讯的实际内容发送给web服务器,数据放置在HTML Header内提交,Post未有界定提交的多寡。Post比Get安全,当数码是华语也许不灵活的数量,则用get,因为运用get,参数会来得在地点,对中国“氢弹之父”感数据和不是华语字符的数码,则用post;

<a target="_blank" name="t6" style="color:rgb(12,137,207)"></a>globalStorage对象

sessionStorage对象应当首要用于针对会话的小段数据的存放。假如急需凌驾花花存款和储蓄数据,那么globalStorage可能localStorage更为合适
要采用globalStorage,首先要制订哪些域能够访谈该多少。能够透过方括号标志使用品质来促成。

//保存数据
globalStorage['wrox.com'].name = 'Nicholas';
//获取数据
var name = globalStorage['wrox.com].name;

在此地,访谈的是针对域名wrox.com的仓储空间。那个蕴藏空间对于wrox.com及其全部子域都是能够访谈的。
对globalStorage空间的探访,是基于发起呼吁的页面包车型地铁域名、协议和端口来限制的(类似于ajax央浼的同源战略)。假使达成不可能分明域名,那么使用location.host作为属性名相比较安全

globalStorage[location.host].name = 'Nicholas';
var book = globalStorage[location.host].getItem('book');

如果不利用removeItem()只怕delete删除,恐怕顾客为解除浏览器缓存,存款和储蓄在globalStorage属性中的数据会一直保存在磁盘上。那让globalStorage极其适合在顾客端存款和储蓄文书档案大概长时间保留客户偏心设置

*GET恳请的多寡会被浏览器缓存起来客户名和密码将公开出现在U路虎极光L上,其外人可以查到历史浏览记录,**数量不太安全**。在服务器端,用Request.QueryString来赢得Get方式交给来的数额。*

string name=Context.Request.QueryString["name"]

<a target="_blank" name="t7" style="color:rgb(12,137,207)"></a>localStorage对象

localStorage对象在修订过的HTML5职业中作为悠久保存客商端数据的方案替代了globalStorage。与globalStorage不相同,不能够给localStorage钦点其余访谈准则;准则完成就设定好了。要拜会同叁个localStorage对象,页面必需来自同二个域名,使用同一种公约,在同二个端口上。这一定于globalStorage[location.host]
鉴于localStorage是Storage的实例,所以能够像使用sessionStorage同样来行使它。

//使用方法存储数据
localStorage.setItem('name','Nichoalas');
//使用属性存储数据
localStorage.book = 'Professional JavaScript';
//使用方法读取数据
var name = localStorage.getItem('name')
//使用属性读取数据
var book = localStorage.book;

积存在localStorage中的数据和存款和储蓄在globalStorage中的数据一致,都依照一样的法则:数据保存到通过JavaScript
剔除或许是客商清除浏览器缓存

*Post要求则作为http新闻的实在内容发送给web服务器,数据放置在HTML Header内提交,Post未有限制提交的数据。Post比Get安全*,当数码是中文恐怕不灵敏的多少,则用get,因为运用get,参数会来得在地方,对中国“氢弹之父”感数据和不是普通话字符的数据,则用post。

POST表示恐怕修改造服务器上的财富的伸手,在劳动器端,用Post格局提交的多少只可以用Request.Form来获取.

<a name="t5"></a><a target="_blank" name="t8" style="color:rgb(12,137,207)"></a>File API

File API在表单中的文件输入字段的功底上,又增添了有的平昔访谈文件音讯的接口。H5在DOM中为文件输入成分增添了三个files会集,在经过文件输入字段选择了一或多少个公文时,files集结中校包罗一组File对象,每一个File对象对应着一个文件。每种File对象都有下列只读属性

  • name: 当半夏件系统的文件名
  • size: 文件的字节大小
  • type:字符串,文件的MIME类型。
  • lastModifiedDate:字符串,文件上一回被涂改的平地风波(独有chrome实现了那天性子)

现今大家取得id为‘files-list’的input为file的要素,将该因素中上传的公文输出到调控台

var filesList = document.getElementById('files-list');
        EventUtil.addHandler(filesList,'change',funciton(e){
            var files = EventUtil.getTarget(e).files,
                i = 0,
                len = files.length;
            while(i<len){
                console.log(files[i].name + '('+files[i].type+','+files[i].size +'bytes)');
                i++;

            }
        })

POST表示或者修更动服务器上的财富的乞请,在服务器端,用Post形式提交的多少只好用Request.Form来博取

string name=context.Request.Form["pwd"];

<a target="_blank" name="t9" style="color:rgb(12,137,207)"></a>FileReader类型

FlieReader类型完结的是一种异步文件读取机制。能够把FileReader想象成XMLHttpRequest,差距只是它读取的是文本心疼,并非远程服务器。为了读取文件中的数据,FileReader提供了之类多少个办法:

  • readAsText(file, encoding):以纯文本的花样读取文件,将读取到的文件保存在result属性中。
  • readAsDataUENCOREL(file):读取文件并将文件一数目UWranglerI的花样保留在result属性中
  • readAsBinaryString(file)(已丢弃):读取文件并将一个字符串保存在result属性中,字符串中的每一个字符表示一字节
  • readAsArrayBuffer(file):读取文件并将三个带有文件内容的ArrayBuffer保存在result属性中。

鉴于读取进程是异步的,因而FileReader也提供了多少个事件。当中最有效的多少个事件是progress、error和load,分别代表是或不是又读取了新数据,是不是发生了不当以及是或不是读完了整个文件。

var filesList = document.getElementById("files-list");
EventUtil.addHandler(filesList, "change", function(event){
    var info = "",
        output = document.getElementById("output"),
        progress = document.getElementById("progress"),
        files = EventUtil.getTarget(event).files,
        type = "default",
        reader = new FileReader();

    if (/image/.test(files[0].type)){
        reader.readAsDataURL(files[0]);
        type = "image";
    } else {
        reader.readAsText(files[0]);
        type = "text";
    }

    reader.onerror = function(){
        output.innerHTML = "Could not read file, error code is " + reader.error.code;
    };

    reader.onprogress = function(event){
        if (event.lengthComputable){
            progress.innerHTML = event.loaded + "/" + event.total;
        }
    };

    reader.onload = function(){

        var html = "";

        switch(type){
            case "image":
                html = "<img src="" + reader.result + "">";
                break;
            case "text":
                html = reader.result;
                break;

        }
        output.innerHTML = html;
    };
});

<a target="_blank" name="t10" style="color:rgb(12,137,207)"></a>读取部分剧情

File对象协助五个slice()方法以贯彻读取文件的一有的并不是全部内容,那几个办法在FireFox中的达成叫mozSlice(),在chrome中的实现是webkitSlice(),Safiri的5.1及从前的版本不援助那一个措施。Slice()方法接收多少个参数:先导字节及要读取的字节数。那么些艺术重临三个Blob实例,Blob是File类型的父类型。上面是叁个通用的函数,能够在区别施行中使用slice()方法:

function blobSlice(blob,startByte,length){
    if(blob.slice){
        return blob.slice(startByte,length);
    } else if(blob.webkitSlice){
        return blob.webkitSlice(startByte,length);
    } else if(blob.webkitSlice){
        return blob.webkitSlice(startByte,length);
    } else {
     return null;
    }
}

blob类型有一个size属性和二个type属性,并且它也支撑slice()方法,以便更为切割数据。通过FileReader也得以从Blob中读取数据。上面那么些例子只读取文件的32B内容

var filesList = document.getElementById('files-list');
EventUtil.addHandler(filesList, "change", function(event){
         var info = "",
              output = document.getElementById("output"),
              progress = document.getElementById("progress"),
              files = EventUtil.getTarget(event).files,
              type = "default",
              reader = new FileReader();
              blob = blobSlice(files[0],0,32);

          if (blob){
              reader.readAsText(blob);
              reader.onerror = function(){
               outpit.innerHTML = 'could not read file,error code is' + reader.error.code;
           }
           reader.onload = function(){
            output.innerHTML = reader.result;
        };
     } else {
         alert('your browser does not support slice()');

          }

          reader.onerror = function(){
              output.innerHTML = "Could not read file, error code is " + reader.error.code;
          };

只读取文件的一有些能够节省时间,非常适合只关切数据中某些特定部分(如央求尾部)的场合

<a target="_blank" name="t11" style="color:rgb(12,137,207)"></a>对象URL

指标UPRADOL也被称呼blob UPRADOL,指的是援引保存在File或Blob中多少的U福睿斯L。使用对象U中华VL的裨益是足以不必把文件内容读取到JavaScript中而直接运用文件内容。为此,只要在须求文件内容的地方提供对象U智跑L就能够。要创造对象UEvoqueL,可以选用window.U宝马X5L.createObjectU索罗德L()方法,并传到File或Blob对象。那么些核心在Chrome中的完成叫window.webkitU奇骏L.createObjectUPAJEROL(),由此得以经过如下函数来解除命名的歧异:

function createObjectURL(blob){
    if(window.URL){
        return window.URL.createObjectURL(blob);
    } else if (window.webkitURL) {
        return window.webkitURL.createObjectURL(blob);
    } else {
        return null;
    }
}

本条函数的重返值是叁个字符串,指向一块内部存款和储蓄器的地点。因为这些字符串是ULANDL,所以在DOM中也能运用。比方,以下代码能够在页面中展示一个图像文件:

var filesList = document.getElementById("files-list");
EventUtil.addHandler(filesList, "change", function(event){
      var info = "",
          output = document.getElementById("output"),
          progress = document.getElementById("progress"),
          files = EventUtil.getTarget(event).files,
          type = "default",
          reader = new FileReader();
          url = createObjectURL(files[0]);
      if(url) {

       if (/image/.test(files[0].type)){
           output.innerHTML="<img src ="" + url + "">"
       } else {
           output.innerHTML = 'not an image';
       }
    } else {
     output.innerHTML = "your browser doesn't support object URLs";
 }
});

      reader.onerror = function(){
          output.innerHTML = "Could not read file, error code is " + reader.error.code;
      };

      reader.onprogress = function(event){
          if (event.lengthComputable){
              progress.innerHTML = event.loaded + "/" + event.total;
          }
      };

<a target="_blank" name="t12" style="color:rgb(12,137,207)"></a>读取拖放的文书

围绕读取文件消息,结合使用Html5拖放API和文书API,能够成立出令人瞩指标客商分界面:在页面上创办了自定义的放置目的后,能够从桌面上把文件拖放到该对象。与拖放一张图片或许贰个链接类似,从桌面上把公文拖放到浏览器中也会触发drop事件。何况能够在e.dataTransfer.files中读到被放置的公文,当然此时它是叁个File对象,与童年过文件输入字段获得的File对象同样。

var droptarget = document.getElementById('droptarget');

function handleEvent(e){
    var info = '';
    var output = document.getElementById('output');
    var files, i, len;
    e.preventDefault();
    if(e.type == 'drop') {
        files = e.dataTransfer.files;
        i = 0;
        len = files.length;
        while(i < len){
            info += files[i].name + '(' + files[i].type + ',' + files[i].size + 'bytes<br>';
            i++;
        }
        output.innerHTML = info;
    }
}
droptarget.addHandler('dragenter',handleEvent,false);
droptarget.addHandler('drageover',handleEvent,false);
droptarget.addHandler('drop',handleEvent,false);

<a name="t6"></a><a target="_blank" name="t13" style="color:rgb(12,137,207)"></a>Web Workers

专用Web Worker提供可一个粗略的办法使的web内容能够在后台运营脚本。一旦worker创造后,它能够向由它的开创者钦命的平地风波监听函数字传送递信息,那样改worker生成的持有任务就都会接到到这几个音信。worker线程可以在不困扰UI的动静下施行任务。

<a target="_blank" name="t14" style="color:rgb(12,137,207)"></a>生成worker

成立三个新的worker十分轻松。便是调用Worker()构造函数,钦点三个要在worker线程内运转的剧本的U瑞虎I,假诺期待能够收到worker的打招呼,能够将worker的onmessage属性设置成八个特定的事件管理函数,倘诺希望能够发送音讯到worker,能够选拔postmessage方法

var myWorker = new Worker("my_task.js");

myWorker.onmessage = function (oEvent) {
  console.log("Called back by the worker!n");
};

myWorker.postMessage(""); // start the worker.

<a target="_blank" name="t15" style="color:rgb(12,137,207)"></a>传递数据

在主页面与worker之间传递的多少是透过拷贝,而不是分享来成功的。传递给worker的靶子供给通过系列化,接下去在另一端还要求反系列化。页面与worker不会分享同三个实例,最后的结果正是在每一遍通讯停止时生成了数额的四个别本。当先六分之三浏览器采纳结构化拷贝来落到实处该本性。
example.html(主页面)

var myWorker = new Worker("my_task.js");

myWorker.onmessage = function (oEvent) {
  console.log("Worker said : " + oEvent.data);
};

myWorker.postMessage("ali");

my_task.js(worker)

postMessage("I'm working before postMessage('ali').");

onmessage = function (oEvent) {
  postMessage("Hi " + oEvent.data);
};

<a target="_blank" name="t16" style="color:rgb(12,137,207)"></a>Worker全局效率域

至于Web Worker,最器重的是要掌握它所实行的JavaScript代码完全在另贰个成效域,与这段日子网页中的代码不分享成效域。在Web Worker中,一样有八个大局对象和其他对象以及艺术。可是Web Worker中的代码无法访谈DOM,也无从透过任何措施影响页面包车型地铁外观
Web Worker中的全局对象是worker对象自己。也正是说,在那一个奇异的全局意义域中,this和sele援用的都是worker对象。为便利管理数量,Web Worker自己也是贰个最小化的运营条件

  • 最小化的navgator对象 : online、appName、appVersion、userAgent、platform
  • 只读的location对象 : 全部属性都是只读的
  • self : 指向全局 worker 对象
  • 所有的ECMA对象,Object、Array、Date等
  • XMLHttpRequest构造器
  • setTimeout、setInterval、clearTimeout()和clearInterval()方法

在worker内部,调用close()方法也得以告一段落专门的工作。Worker截止专门的工作后就不会再有事件时有爆发。
其余,Worker的大局成效域中提供了importScripts()方法。那么些形式接收一个或四个指向JavaScript文件的UEnclaveL。种种加载进度都以异步举办的,由此素有的台本加载并实践到位以往,importScripts()才会施行

importScripts('file1.js','file2.js');

不畏file2.js先于file1.js下载完,试行的时候如故会依照前后相继顺序举行。何况,那么些脚本是在Worker的全局效率域中施行,假若脚本中含有与页面香瓜你的JavaScript代码,那么脚本恐怕无法正确运转。

<a name="t7"></a><a target="_blank" name="t17" style="color:rgb(12,137,207)"></a>history对象

history对象保存着客户上网的历史记录,从窗口被展开的那一刻算起。
使用Go()方法能够在客商的历史记录中随机跳转,能够向后也得以向前。这一个方式接受三个参数,表示向后或向前跳转的页面数的多少个整数值。负数表示向后跳转(类似于单击浏览器的‘后退’按键),正数表示向前跳转(类似于单击浏览器的“前进”按键)

history.go(-1);//后退一页
history.go(1);//前进一页
history.go(2);//前进两页

也足以给go()方法传递三个字符串参数,此时浏览器会跳转到历史记录中含有该字符串的率先个职责–恐怕后退,也也许进化,具体看那一个地点近来。倘使历史记录中不带有该字符串,那么这几个措施什么也不做

history.go('wrox.com');//跳到最近的wrox.com页面

除此以外,仍是能够利用八个简写方法back()和forward()来代替go()。那多少个法子都得以效仿浏览器的‘后退’和‘前进’开关。

history.back();//后退一页
history.forward();//前进一页

history对象还会有一个length属性,保存着历史记录的多寡。这几个数额富含富有的历史记录,即具备向后和前进的笔录。

<a target="_blank" name="t18" style="color:rgb(12,137,207)"></a>history在h5中新扩充的属性和格局

h第55中学的history对象新添了五个新章程:history.pushState()和history.replaeState();
三种办法都同意大家增加和立异历史记录,它们的行事规律一样並且能够拉长数量同样的参数。不过pushState()是在history栈中增加一个新的条目,replaceState()是替换当前的记录值。除了艺术之外,还会有popstate 事件
pushState(data,title[,url])和replaceState(data,title[,url])参数同样,参数表达如下:

  • data:多少个象征景况的对象,json格式数据
  • title:八个string格式的标题(大许多浏览器不协理或不经意那几个参数,最佳用null替代)
  • url:三个url(用于替换当前UGranCabrioL)

当浏览会话记录的时候,不管点击前进大概后退开关,照旧使用history.go和history.back方法,popstate事件都会被触发。当事件产生时,浏览器会从history中收取U奥迪Q7L和对应的state对象替换当前的U凯雷德L和history.state。通过event.state也能够博得history.state
内需验证的是pushState只是将这段时间页面保存到history的历史记录中(并视作近来的多少个记下),并且将近来浏览器的地方栏改为参数url钦定的值,但并不会加载它。那点与平日的经过链接展开或浏览器地址输入url完全不平等。所以只要想在url改造的时候须要监听popstate事件。

运用history能够弥补ajax不可能回降的破绽。如下方法是效仿ajax操作的兑现格局。

<input type="button" value="加1" onclick="add()" />
   <div id="info" style="border:red 1px solid;width:200px;padding:10px;">0</div>
<script>
    var info = document.getElementById('info');
    var i = 1;
    function add() {
        var data = {
            param : i,
            func : func
        };
        info.innerHTML = i;
        document.title = i;
        History.push(data);
        i++;
    }

    function func(i) {
        info.innerHTML = i;
        document.title = i;
    }

    History = function() {  
            var 
               list = [],
               index = 1,

               func, scope;

            function push(data) {
                if(typeof data !== 'object') return;

                if(typeof data.param == undefined || typeof data.func !== 'function') return;

                func = data.func;
                scope = data.scope;

                history.pushState({param: data.param}, index, '#' + index);
                index++;
            }

            window.onpopstate = function(e) {
                if(e.state) {
                    var state = e.state,
                        param = state.param;
                    if(param) {
                        func.call(scope, param);
                    }
                }
                else{
                    if(func){
                        func.call(scope, 0);
                    }

                }

            }

            return {
                push : push
            };
        }();
</script>

<a name="t8"></a><a target="_blank" name="t19" style="color:rgb(12,137,207)"></a>2D绘图(canvas和svg)

<a target="_blank" name="t20" style="color:rgb(12,137,207)"></a>SVG

SVG 是一种选拔 XML 描述 2D 图形的言语。
SVG 基于 XML,那代表 SVG DOM 中的种种成分都以可用的。您可感觉某些成分附加 JavaScript 事件管理器。
在 SVG 中,每一个被绘制的图片均被视为对象。就算 SVG 对象的性质爆发变化,那么浏览器能够自动重现图形。

<a target="_blank" name="t21" style="color:rgb(12,137,207)"></a>canvas

Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素进行渲染的。
在 canvas 中,一旦图形被绘制达成,它就不会继续获得浏览器的青眼。要是其地方产生变化,那么一切场景也必要重新绘制,蕴含其它或者已被图形覆盖的靶子。

<a target="_blank" name="t22" style="color:rgb(12,137,207)"></a>Canvas 与 SVG 的比较

下表列出了 canvas 与 SVG 之间的有的分裂之处。
Canvas

依赖分辨率
不支持事件处理器
弱的文本渲染能力
能够以 .png 或 .jpg 格式保存结果图像
最适合图像密集型的游戏,其中的许多对象会被频繁重绘

SVG

不依赖分辨率
支持事件处理器
最适合带有大型渲染区域的应用程序(比如谷歌地图)
复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
不适合游戏应用

<a name="t9"></a><a target="_blank" name="t23" style="color:rgb(12,137,207)"></a>h5的包容性难点

IE6/IE7/IE8帮忙通过document.createElement方法发生的竹签,可以接纳这一特征让这一个浏览器帮助HTML5新标签。可是浏览器帮衬新标签后,还索要增加标签暗许的体制。

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:GET和POST请求的区别,Get请求与Post请求的区别

关键词:

上一篇:没有了

下一篇:没有了