AJax技术

图解AJAX原理

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

阅读目录 先上原理图: 背景: 问题: 一、什么是 AJAX 二、提交Form表单的原理 三、AJAX提交请求和服务响应的原理 四、XMLHttpRequest 对象的知识 五、JQuery实

> 编程开发 > AJAX相关 >

图解AJAX原理 2017-07-18 14:48 出处:清屏网 人气: 

  •  阅读目录
  • 先上原理图:
  • 背景:
  • 问题:
  • 一、什么是 AJAX
  • 二、提交Form表单的原理
  • 三、AJAX提交请求和服务响应的原理
  • 四、XMLHttpRequest 对象的知识
  • 五、JQuery实现AJAX
  • 六、优势
  • 七、缺点
  • 八、应用场景
  • 九、不适用场景
  • 先上原理图:点我查看高清大图

    背景:

    1.传统的Web网站,提交表单,需要重新加载整个页面。

    2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差。

    3.服务端返回Response后,浏览器需要加载整个页面,对浏览器的负担也是很大的。

    4.浏览器提交表单后,发送的数据量大,造成网络的性能问题。

    问题:1.如何改进?

    2.AJAX是什么?

    3.有什么优势?

    4.有什么缺点?

    一、什么是 AJAX  

    1.为什么需要AJAX当需要从服务器获取数据,并刷新页面的操作,如果不采用AJAX,则需要用提交整个表单的方式,当提交表单时,发送请求给服务器,页面需要等待服务器发送完response后,页面才能恢复操作。

    2.AJAX的概念:1.AJAX = 异步 JavaScript 和 XML。

    2.AJAX 是一种用于创建快速动态网页的技术。

    3.通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。

    4.可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    3.什么叫异步当前页面发送一个请求给服务器,当前页面不需要等待服务器响应才能操作网页。发送完请求之后,当前页面可以继续浏览,操作。

    4.什么叫局部刷新我们可以用两种方式来实现部分刷新。

    1. iframe页面重载的方式。

    这种方式虽然实现了部分刷新,但是是页面的重载,所以也会带来性能上的问题。

    Step1.在页面中定义一个Iframe

    + View Code 

    Step2.设置Iframe的src

    + View Code 

    Step3.添加一个button的点击事件,当点击这个button时,重新设置Iframe的src,实现iframe里面的页面刷新。Iframe外面的内容不刷新。

    + View Code  + View Code 

    通过这种方式我们可以实现一个导航栏的功能:

    2.AJAX方式

    Step1.JavaScrpit发送异步请求

    Step2.服务端查询数据库,返回数据

    Step3.服务端返回Response

    Step4.客户端根据返回的Response,来用JavaScript操作DOM。

    看下面的例子:

    当我们切换DropDownList中的Item时,JavaScript发送异步请求给Server端,Server端返回数据,然后JavaScript将数据解析出来,拼接了一个Table,将Table呈现在页面上。

    回到顶部

    二、提交Form表单的原理 1.代码

    客户端代码:

    <form id="form1" action="Test.ashx" method="get">              您的姓名1:<input type="text" name="fname" size="20" />              <input type="submit" name="submit" value="Sumbit">   </form> 

    服务端代码:

    public void ProcessRequest (HttpContext context)  {          //Delay          for (int i = 0; i < 2; i++)          {              System.Threading.Thread.Sleep(1000);          }               //从Requset.Form中获取fname的值。使用Form获取请求的键值对的值的前提条件是HTTP request Content-Type 值必须是"application/x-www-form-urlencoded" 或 "multipart/form-data".          string fname = context.Request["fname"];             context.Response.ContentType = "text/plain";      //将字符串写入 HTTP 响应输出流。          context.Response.Write("Hello World " + fname);   }  2.将代码部署到IIS

    3.打开站点:

    :8003/Test.html

    4.输入“Jackson0714”然后点击Sumbit按钮,页面会重新刷新,显示"Hello World Jackson0714"

    5.提交Form表单后,页面发送请求和服务端返回响应的流程

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

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

    三、AJAX提交请求和服务响应的原理 1.代码

    客户端HTML代码:

    + View Code 

    客户端JS代码:

    + View Code 

    这里有一点需要注意

    var xmlhttp = createRequest();  

    1.让服务端能够操作这个变量,如果定义成局部变量,则服务端返回response时,不能对xmlhttp的属性赋值。回调函数要求request是全局的,才能访问这个变量和它的属性值。

     

    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

    网友点评
    !