AJax技术

图解AJAX原理(2)

字号+ 作者:H5之家 来源:H5之家 2017-07-23 16:03 我要评论( )

2.定义成全局变量后,可能出现两个请求或多个请求共享同一个请求对象。而这个请求对象只能存放一个回调函数来处理服务器响应。当服务器返回两个请求的Response后,可能会调用后指定的回调函数。所以可能有两个完全

2.定义成全局变量后,可能出现两个请求或多个请求共享同一个请求对象。而这个请求对象只能存放一个回调函数来处理服务器响应。当服务器返回两个请求的Response后,可能会调用后指定的回调函数。所以可能有两个完全不同的服务器响应由同一个回调函数处理,而这可能并不是正确的处理。解决办法是创建两个不同的请求对象。

服务端代码不变。

2.输入“Jackson0714”然后点击Sumbit按钮,页面不会刷新,在最下面显示"Hello World Jackson0714"

5.AJAX发送请求和服务端返回响应的流程

6.通过抓包,我们可以得到HTTP Headers浏览器发送HTTP给服务端,采取的协议是HTTP协议。

在传输过程中,我们可以看下HTTP Headers:

7.AJAX GET和POST方式区别AJAX发送请求和POST发送请求的代码如下: //GET方式  function testGet() {      var fname = document.getElementById("testGetName").value;      xmlhttp.open("GET", "Test.ashx?fname=" + fname + "&random=" + Math.random() , true);  xmlhttp.onreadystatechange = callback;      xmlhttp.send(null);  }      //POST方式  function testPost() {      var fname = document.getElementById("testPostName").value;      xmlhttp.open("POST", "Test.ashx?"  + "&random=" + Math.random() , true);      xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");     xmlhttp.onreadystatechange = callback;      xmlhttp.send("fname="+fname);        } 

1.请求的URL中,POST方式可以添加键值对,也可以不添加

2.GET方式中,send方法传递值无效。对于IE浏览器可以忽略send()方法的参数。但是对于FireFox,必须提供一个null引用,否则回调行为将不规律。这是在编写客户端脚本时你会发现的一个跨浏览器兼容的问题。

3.POST 可以用send方法发送额外信息。发送的信息存放在content中

4.Post方式需要指定Request Header的类型。Get方式不需要指定。

5.GET方式将参数暴露在URL中,POST不暴露。

四、XMLHttpRequest 对象的知识 1.XMLHttpRequest 对象的方法方 法描 述

2.XMLHttpRequest 对象的属性 属 性描 述

五、JQuery实现AJAX

下面的代码实现了当切换DropDownList的item时,触发getWeeklyCalendar方法,用JQuery的类库方法$.ajax来发送AJAX请求。

客户端JQuery代码

+ View Code 

后台成功返回Response后,执行paintWeeklyCandler(data)方法

后台PHP代码

+ View Code  六、优势

1.使用异步方式与服务器通信,页面不需要重新加载,页面无刷新

2.按需取数据,减少服务器的负担

3.使得Web应用程序更为迅捷地响应用户交互

4.AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行

5.浏览器的内容和服务端代码进行分离。页面的内容全部由JAVAScript来控制,服务端负责逻辑的校验和从数据库中拿数据。

七、缺点

1.安全问题:将服务端的方法暴露出来,黑客可利用这一点进行攻击

2.大量JS代码,容易出错

3.Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰——用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等

4.可能破坏浏览器后退按钮的正常行为;

5.一些手持设备(如手机、PAD等)自带的浏览器现在还不能很好的支持Ajax

八、应用场景

1.对数据进行过滤和操纵相关数据的场景

2.添加/删除树节点

3.添加/删除列表中的某一行记录

4.切换下拉列表item

5.注册用户名重名的校验

九、不适用场景

1.整个页面内容的保存

2.导航


分享给小伙伴们:

本文标签: AJAX/">AJAX

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

  • 本类最热新闻

  •  

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • ajax使用不同namespace的action的方法,ajaxnamespace

      ajax使用不同namespace的action的方法,ajaxnamespace

      2017-07-23 16:06

    • AJAX核心技术教学

      AJAX核心技术教学

      2017-07-23 14:02

    • jQuery高级篇 第二章 Ajax在jQuery中的使用视频课程

      jQuery高级篇 第二章 Ajax在jQuery中的使用视频课程

      2017-07-23 13:07

    • Ajax技术原理,自己写一个Ajax

      Ajax技术原理,自己写一个Ajax

      2017-07-22 15:00

    网友点评
    d