ajax

1.什么是ajax
  ajax 的全称是Asynchronous JavaScript and XML,其中, Asynchronous 是异步的意思,指的是异步 JavaScript 和 XML。
  AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下, 对的某部分进行更新。
  传统的网页(不使用AJAX)如果需要更新内容,必需重载整 个网页面。

2.ajax所包含的技术
  大家都知道ajax并非一种新的技术,而是几种原有技术的结合体。它由下 列技术组合⽽成。
    1.使用CSS和XHTML来表示。
    2. 使用DOM模型来交互和动态显示。
    3.使用XMLHttpRequest来和服务器进行异步通信。
    4.使用javascript来绑定和调用。

3.ajax原理
  Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步 请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。

4.同步和异步的区别?

同步:阻塞的

  -张三叫李四去吃饭,李四一直忙得不停,张三一直等着,直到李四忙完两个人一块去吃饭

  =浏览器向服务器请求数据,服务器比较忙,浏览器一直等着(页面白屏),直到服务器返回数据,浏览器才能显示页面

异步:非阻塞的

  -张三叫李四去吃饭,李四在忙,张三说了一声然后自己就去吃饭了,李四忙完后自己去吃

  =浏览器向服务器请求数据,服务器比较忙,浏览器可以自如的干原来的事情(显示页面),服务器返回数据的时候通知浏览器一声,浏览器把返回的数据再渲染到页面,局部更新

5.ajax请求的实现
  1.创建XmlHttpRequest对象
    if (window.XMLHttpRequest) {
      // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
      xmlhttp=new XMLHttpRequest();
    } else {
      // IE6, IE5 浏览器执行代码
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  2.连接服务器
    xmlhttp.open(“GET","http://127.0.0.1:8080",true);
  3.发送请求

    xmlhttp.send();
  4.等待服务器返回内容,并处理
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("btn").innerHTML=xmlhttp.responseText;
      }
    }

 
 
6.简介一下ajax的过程

  1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象

  2. 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息

  3. 设置响应HTTP请求状态变化的函数

  4. 发送HTTP请求

  5. 获取异步调用返回的数据

  6. 使用JavaScript和DOM实现局部刷新

 
 
7.ajax的优缺点

  优点:可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量,避免用户不断刷新或者跳转页面,提高用户体验。

  缺点:不能回退, 对搜索引擎不友好;要实现ajax下的前后退功能成本较大;可能造成请求数的增加跨域问题限制。

最新文章

  1. JQuery学习笔记
  2. 关于onethink的迁移站点产生数据库错误
  3. Js杂谈-正则的测试与回溯次数
  4. (转)ajax.dll,ajaxpro.dll的区别和用法
  5. suibi1117
  6. ARM GCC CodeSourcery 下载地址
  7. PHP中的urlencode和urldecode的理解
  8. CSS的display、hover、overflow、&copy(版权符号)、borer-radius(边框圆角)
  9. Android学习记录:界面设计
  10. 自定义tab吸顶效果一(原理)
  11. ASP.NET MVC ETag & Cache等优化方法
  12. Java小问题
  13. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari
  14. 记录Js 文本框验证 与 IE兼容性
  15. How can I manage the modules for python2 when python3 installed as well. In OSX
  16. php 获取今日、昨日、上周、本周、本月、上月、今年的起始时间戳和结束时间戳的方法
  17. 6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加
  18. C语言实现哈夫曼编码(最小堆,二叉树)
  19. nginx php
  20. SQL Server 2008中的CTE递归查询得到一棵树

热门文章

  1. composer自动加载一个文件后必须执行命令composer dump-autoload
  2. 点滴积累【C#】---使用log4net组件记录错误日志(以文本形式记录)
  3. Python 函数常用方法总结
  4. [待解决]ColumnPrefixFilter 不能过滤出全部满足条件的,
  5. 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)
  6. [转]JS脚本抢腾讯云学生1元代金券
  7. 加密web.config中的邮件配置mailSettings
  8. 解决 Visual Studio For Mac 还原包失败问题
  9. RTP时间戳
  10. 【C++自我精讲】基础系列五 隐式转换和显示转换