js学习总结----ajax中的http请求方式及同步编程和异步编程

一、请求方式

var xhr = createXHR();
xhr.open("get","/getList?num=12",true);
xhr.open("post","/getList",true);
xhr.send(‘{"name":"zhangsan","age":7}‘)
//HTTP METHOD;客户端向服务器端发送请求的方式
//以下的请求方式不管哪一种都可以向服务器传递数据,也可以从服务器中获取到数据,从本质意义上讲以下的方式是没有任何区别的,例如用post做的事情用get也能做,而我们接下来讲的区别都是目前开发者们约定俗成的规范:
/*
    GET:一般应用于从服务器获取数据(给服务器的数据少,从服务器拿的数据多,项目中最常用的请求方式就是get)
        使用GET请求给服务器传递内容我们一般都使用"URL问号传参的方式"
    POST:一般应用于向服务器推送数据(给服务器的多,从服务器拿下来的少)
        使用POST请求给服务器传递内容我们一般都使用"请求主体的方式"传递给服务器
    PUT:一般应用于给服务器上增加资源文件(我们上传图片功能)
    DELETE:一般应用于从服务器上删除资源文件
    HEAD:一般应用于只获取服务器的响应头信息
*/

/*
    GET PK POST
    大小问题:
        GET请求传递给服务器的内容存在大小的限制,而POST理论上没有限制
        原因:GET通过URL传参给服务器,而每个浏览器对于URL的长度存在限制,谷歌8kb、火狐7kb、IE12kb的长度限制,如果URL的长度超过限制,浏览器会把超出的部分截取
    缓存的问题:
        GET请求会出现缓存(这个缓存不一定是304),POST是没有缓存的
        在项目中我们的GET请求一般不会让其出现缓存"清楚缓存":在url的末尾加一个随机数
        xhr.open("get","/getList?num=12&_="+Math.random(),true);
    安全问题
        一般来说GET不安全,而POST相对安全一些
*/

二、同步编程和异步编程

//同步(SYNC)和异步(ASYNC)编程
//JS是属于单线程的,我们最好使用异步编程
//定时器都是异步编程的
//事件绑定都是异步编程的
//回调函数也可以理解为异步编程
//在AJAX中可以使用异步编程
var count = 0;
window.setInterval(function(){
    count++;
    console.log(count);//再输出1
},1000)//如果定时器的时间设置为0也不是立马执行,而是需要等待一段时间,我们设定的时间是1000ms,但是不一定时间到就会执行,如果当前浏览器的线程被占用,会一直等待
console.log(count);//先输出0
while(1){

}//加了while之后定时器里面的代码就不会执行

//如果多个定时器的时间都到了,先执行时间短的这个定时器

//AJAX中的同步:当AJAX任务开始的时候(XHR.SEND)需要等到readyState===4,才可以执行下面的任务
//AJAX中的异步:当AJAX任务开始的时候(XHR.SEND)不需要等到readyState===4,我们依然可以继续做其他的任务,并且只有其他的任务完成后,我们在看是否为4,到达4的时候做一些相关的操作
时间: 2024-10-05 22:49:17

js学习总结----ajax中的http请求方式及同步编程和异步编程的相关文章

[IBM]掌握Ajax,Ajax中的高级请求和响应

掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/ dynaTrace Ajax:前端性能分析利器 http://www.ibm.com/developerwo

Ajax中自定义发送请求和处理响应对象

Ajax中自定义发送请求和处理响应对象 JavaScript内置一个称为XMLHttpRequest的对象,用于发起Ajax请求并处理Ajax响应.这个对象非常复杂,包含许多支持Ajax的特性和方法. readyState:请求的状态代码[0(未开始).1(开启).2(已传送).3(接收中).4(已载入)] status:HTTP的请求状态代码[404(找不到文件).200(OK)] onreadystatechange:请求状态改变时会被调用的函数引用,这个函数事件处理器就是处理响应的地方.

AJAX中的请求方式以及同步异步的区别

请求方式,分为GET与POST: GET 最为常见的HTTP请求,普通上网浏览页面就是GET.GET方式的参数请求直接跟在URL后,以问号开始.(JS中用window.location.search获得).参数可以用encodeURIComponent进行编码,使用方式: var EnParam = encodeURIComponent(param); URL只支持大约2K的长度,即2048字符数:使用GET进行AJAX请求时候会缓存导致出现的页面不是正确的,一般方法加random参数值:aja

js设置全局变量ajax中赋值

js设置全局变量,在ajax中给予赋值赋值不上问题解决方案 方案一. //在全局或某个需要的函数内设置Ajax异步为false,也就是同步. $.ajaxSetup({async : false}); //然后再进行你的Ajax操作 $.post(地址, 参数, function(data, status) { if (status == "success") { //赋值给全局变量 } }); 方案二. $.ajax({type : "post",url :地址,

JS学习之ajax相关知识和ajax的封装

XMLHttpRequest对象 1. XMLHttpRequest用于在后台与服务器交换数据,是AJAX之所以能对网页进行局部刷新的核心,同时Ajax技术离开了XMLHttpRequest对象将失去与服务器异步通信的能力. 2:不同的浏览器创建XMLHttpRequest对象使用的语句是不同的. 3:3.XMLHttpRequest对象方法与属性 方法 描述 open(method,url,[async],[username],[password]) 规定请求的类型.URL 以及是否异步处理请

ajax中的async属性值之同步和异步及同步和异步区别

在Jquery中ajax方法中async用于控制同步和异步,当async值为true时是异步请求,当async值为fase时是同步请求.ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才

HTTP深入浅出之http请求和15中以上的请求方式

HTTP的介绍及其通信机制 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HT

go中处理各种请求方式以及处理接口请求参数

话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) //这个文件是对于net/http包的解读 func httpGet() { //func Get(url string) (resp *Response, err error) resp, err :=

网络请求数据(同步GET,异步GET)

////GET:将请求所需要传的参数,直接封装到URL中,缺点:1.不安全  2.url长度有限制,如果参数较多,会封装失败,导致无法请求 //POST:包含基础的url以及参数体,也就是说,参数跟url是分开的,比较安全且不用顾虑url的长度 //同步:当执行某个操作时,只有当其完全执行结束,才回去执行下面的操作,缺点:如果遇到耗时操作,会比较卡//异步:多个任务同时执行 #import "ViewController.h" #define BaseUrl @"http:/