关于Ajax的get与post浅分析,同步请求与异步请求,跨域请求;

Ajax局部异步刷新全称ASynchronous JavaScript And XML.使用Javascript代码获取服务器的数据,Ajax当中有两个请求方法,一个是get方法,一个是post请求方法。

  ①get请求方法:请求参数在URL的后面,多个参数之间用&连接。

  ②post请求方法:请求参在请求体当中。

  ③同步请求:界面全部卡顿,卡顿时间由网络速度决定。如采用同步请求则xhr.onreadystatechange的回调函数不被执行,需要修改代码后才能够获取数据 ,将回调函数去掉即可。方法如下:

    xhr.onreadystatechange=function(){

      if(xhr.readystate == 4){

        if(xhr.states == 200){

        }

      }

    }//这是采用异步刷新的代码

    如采用同步刷新只需将xhr.onreadystatechange的回调函数去掉即可:

      if(xhr.readystate == 4){

        if(xhr.states == 200){

        }

      }

  异步的底层原理:JavaScript代码是单线程的,代码从上向下执行,一行一行执行。

  事件队列:JavaScript空闲的时候会去事件队列里面看看有没有方法或者回调函数已经达到了触发条件,因为JavaScript是单线程的,一次只能做一件事。

  setTimeout(function(){

    console.log("我会被排在事件队列中去");

  },0)

  console.log("我是从上到下执行,不用等待");

  上面代码打印顺序是先打印不用等待的,再打印在事件队列中的。虽然setTimeout的延迟时间是0但是事件队列中的方法与回调函数是等到其他不需要排队的函数执行完后再来执行达到条件的。

二、跨域

  ①同源策略:协议、域名、端口号都相同的叫同源。

     http和https就是不同的协议,www.taobao.com和www.baidu.com就是不同的域名,www.taobao.com:80和www.baidu.com:40就是不同的端口号。

  ②Ajax只能获取同源路径下的数据,Ajax是为了访问自己的数据,跨域是为了获取服务器的数据。

  ③跨域的本质是服务器返回了一个方法的调用,这个方法是我们事先定义好的,而方法中的参数就是我们想要的数据。

posted @ 2018-12-08 22:51  秋华啦啦  阅读(861)  评论(1编辑  收藏  举报