• js021-Ajax与Comet


    js021-AjaxComet

    本章内容:

    使用XMLHttpRequet对象

    使用XMLHttpRequet事件

    跨域Ajax通信的限制

    Ajax技术的核心是XMLHttpRequet对象

    21.1 XMLHttpRequet对象

    创建XHR对象:

    var xhr = createXHR();

     

    21.1.1 XHR用法

    在使用XHR对象是,调用的第一个方法是open().该方法接收三个参数:要发送请求的类型(“get”、”post” 等 ),请求的URL和表示是否异步发送请求的布尔值。

    xhr.open("get", "example.php", fasle);

    调用open()方法并不会真正发送请求,而是启动一个请求一备发送

    要发送特定请求,要像如下调用send()方法

    xhr.open("get", "example.txt", fasle);

    xht.send(null);

    send()方法接收一个参数:要作为请求主题发送的数据,如果不需要通过请求主发送数据则用null。

    因为该请求是同步的,JS代码会等到服务器响应后才继续执行

     

    21.1.2 HTTP头部信息

    默认情况下,在发送XHR请求的同时,还会发送下列头部信息:

    头部信息

    说明

    Accept

    浏览器能够处理的内容类型

    Acce-pt-Charset

    浏览器能够显示的字符集

    Accept-Encoding

    浏览器能够处理的压缩编码

    Accept-Language

    浏览器当前设置的语言

    Connection

    浏览器与服务器之间的连接类型

    Cookie

    当前页面设置的任何Cookie

    Host

    发出请求的页面所在的域

    Referer

    发出请求的页面的URI

    User-Agent

    浏览器的用户代理字符串

    21.1.3 GET请求

    使用get请求时经常会发生错误:查询字符串的格式有问题。

    查询字符串的没个参数名称和值都必须使用encodeURIComponent()进行编码,然后才能放到url的末尾。而且所有的名-值对都必须用和号(&)分开。

    xhr.open("get", "example.php", name1 = value1&name2 = value2);

    21.1.4 post请求

    用于向服务器发送应该被保存的数据。Post应该把数据作为请求的主题提交,get请求传统上不是这样的。Post方法可以传入多个参数,且格式不限。

    发送post请求的第二部是想sent()方法中传入某些数据。

    21.2 XMLHttpRequest 2

    21.2.1 formdata

    表单数据序列化。

    Formdata为序列化表单以及创建与表单格式相同过得数据提供便利。如下创建了一个formdata对象,并向其添加了一些数据:

    var data = new FormData();

    data.append ("name", "meimei");

    append()方法接收两个参数:键和值。分别对应表单字段的名字和字段中包含的值。可以添加任意多个键值对。

    21.2.2 超时设定

    Timetout 属性,表示请求在等待相应多少好秒后就终止。在给timeout设置一个数值后,如果在规定的事件内浏览器还没有接收到响应,那么就会触发timeout事件,进而会调用ontimeout事件处理程序。

    21.2.3 overrideMimeType()方法

    调用该方法必须在send()方法之前,才能保证重写相应的MIME类型。

    21.3 进度事件

    有以下6个进度事件:

    事件

    说明

    loadstart

    在接收到响应数据的第一个字节时触发

    progress

    在接收响应期间持续不断的触发

    error

    在请求发生错误是触发

    abort

    在因为调用abort()方法而终止连接时触发

    load

    在接收到完整的相应数据时触发

    loadend

    在通信完成或者触发error、abort或load事件后触发。

    21.3.1 load事件

    21.3.2 progress事件

    21.4 跨资源共享

    21.4.1 IE对CORS 的实现

    XDR(XDomainRequest)类型,该对象与XHR相似。以下是XDR和XHR之间的不同之处

    cookie不会随请求发送,也不会随响应器返回;

    只能设置请求头部信息中的Content-Type字段;

    不能访问响应头部信息

    只支持get和post请求

    本章看不下去了,周四前再来补上来

    原文地址:http://www.cnblogs.com/lal-fighting/p/5164165.html

  • 相关阅读:
    conda docker镜像
    知识图谱推理与实践 (2) -- 基于jena实现规则推理
    知识图谱推理与实践(1)
    Docker使用mysqldump命令备份导出mysql容器中的数据
    centos sudo ps查找并kill线程
    使用Docker安装mysql,挂载外部配置和数据
    使用rpm命令查看软件是否安装,卸载、安装软件
    mysql too many connection
    mysql timeout的详细介绍
    git创建/删除本地branch(分支),tag(标签)
  • 原文地址:https://www.cnblogs.com/lal-fighting/p/5164165.html
Copyright © 2020-2023  润新知