1. 什么是Ajax?

Ajax是“Asynchronous Javascript And XML(异步Javascript和XML)”的缩写, 是指一种创建交互式网页应用的网站开发技术。

Ajax不是一种新的编程语言, 而是一种用于创建更好、更快以及交互性更强的web应用程序的技术。

它是一套综合了多项技术的浏览器端网页开发技术。这些技术包括Javascript、 XHTML和CSS、DOM、XML和XMLHttpRequ。

Ajax可以在不重新加载整个页面的情况下, 与服务器交换数据。这种异步交互的方式, 使用户单击后, 不必刷新页面也能获取新数据。 使用Ajax, 用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。

1.1  Ajax原理

通过XTML和CSS来实现页面, 表达信息。

通过浏览器的XmlHttpRequest(Ajax引擎)对象, 来向服务器发送异步请求, 并接收服务器的响应数据, 然后用javascript来操作DOM, 实现动态局部刷新。

1.2 Ajax的优点和不足之处。

优点:

  使用Ajax的最大优点, 就是能在不更新整个页面的前提下维护数据。

  这使得web应用程序更为迅捷地响应用户动作, 并避免了在网络上发送那些没有改变的HTML代码信息。

  1. 减轻服务器负担, 按需要获得数据。

  2. 无刷新更新页面, 减少用户的实际和心理的等待时间。

  3. 更好的用户体验。

  4. 减轻宽带的负担。

  5. 主流浏览器支持。

不足:

  1. Ajax的程序必须测试针对各个浏览器的兼容性。

  2. Ajax更新页面内容的时候并没有刷新整个页面, 因此, 网页的后退功能是失效的。

  3. 对搜索引擎支持不好。

1.3  Ajax实现过程

  第一步: Javascript监听浏览器网页事件(例如:点击, 提交, 更改等)。

  第二步: 由Javascrip创建Ajax引擎对象。

  第三步: 通过Ajax引擎对象发出请求。

  第四步: Ajax引擎等待并且接收服务器的响应内容

  第五步: Javascript再从“Ajax引擎对象”中获取响应内容, 并且通过DOM改变网页界面显示效果。

2. jQuery的load()方法

jQuery load()方法是简单但强大的AJax方法。

load() 方法从服务器加载数据, 并把返回的数据放入被选元素中。

语法:

$("selector").load(URL, data, callback);

第一种情况:

 
  1. $("#btn").click(function(){
  2.  
  3. //只传一个URL, 表示在id为new-projectsd的元素加载index.html
  4.   $("#new-projects").load("./index.html")
  5.  
  6. })
 

第二种情况:

  1. $("btn").click(function () {
  2. // 只传一个URL, 导入的index.html文件含有多个传递参数, 类似于: index/html?name=yang&age=12
  3. $("#new-projects").load("./index.html", {"name": "yang", "age":12});
  4. });

第三种情况:

 
  1. $("btn").click(function () {
  2. // 如果加载成功,则会执行回调函数
  3. $("#new-projects").load("./index.html", {"name": "yang", "age":12}, function () {
  4. alert("load执行成功!");
  5. });
  6. });
 

3. jQuery的getJSON方法

jQuery的Ajax中使用getJSON()方法, 异步加载JSON格式数据。

获取服务器中的数据, 并对数据进行解析, 显示到页面中。

语法:

$,getJSON(url, [data], [callback]);

参数(url):  为请求加载json格式文件的服务器地址。

参数(data):  可选, 为请求时发送的数据。

参数(callback): 为数据请求成功后执行的函数。

 
  1. $.getJSON("./data/getJSON.json", function (data) {
  2. var str=""; //初始化保存内容变量
  3. $.each(data, function (index, ele) {
  4. $("ul").append("<li>"+ele.name+"</li>>")
  5. })
  6. })
 

4. jQuery的$.get()方法

语法:

 $.get(URL, callback);

 参数(URL): 必选, 规定请求的路径。

 参数(callback): 数据请求成功后执行的函数。

 作用:通过HTTP GET请求从服务器上请求数据。

  1. $.get("./data/getJSON.json", function (data, status) {
  2. console.log(status);
  3. })

5. jQuery的post()方法

语法:

$.post(URL, data, callback);

参数(URL): 必选, 规定请求的路径。

参数(data): 可选, 连同请求发送的数据。

参数(callback):可选, 数据请求成功后执行的函数。

作用: 以POST方式向服务器发送数据, 服务器接收到数据之后, 进行处理, 并将处理结果返回页面。

  1. $.post("/index", {name: "zhang"}, function (data, status) {
  2. console.log(status);
  3. })

jQuery的Ajax初识的更多相关文章

  1. jQuery之ajax实现篇

    jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

  2. 【原创经验分享】JQuery(Ajax)调用WCF服务

    最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...

  3. jQuery版AJAX简易封装

    开发过程中,AJAX的应用应该说非常频繁,当然,jQuery的AJAX函数已经非常好用,但是小编还是稍微整理下,方便不同需求下,可以简化输入参数,下面是实例代码: $(function(){ /** ...

  4. JS原生ajax与Jquery插件ajax深入学习

    序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...

  5. 重写jquery的ajax方法

    //首先备份下jquery的ajax方法 var _ajax=$.ajax; //重写jquery的ajax方法 $.ajax=function(opt){ //备份opt中error和success ...

  6. Jquery通过Ajax方式来提交Form表单

    今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...

  7. 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache

    虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或 ...

  8. jquery管理ajax异步-deferred对象

    今天跟大家分享一个jquery中的对象-deferred.其实早在jquery1.5.0版本中就已经引入这个对象了.不过可能在实际开发过程中用到的并不多,所以没有太在意. 这里先不说deferred的 ...

  9. Struts2 使用jQuery实现Ajax

    在jQuery中将Ajax相关的操作进行封装,使用时只需在合适的地方调用Ajax相关的方法即可,相比而言,使用jQuery实现Ajax更加简洁,方便 1.$.Ajax()可以通过发送Http请求加载远 ...

随机推荐

  1. 2017.10.28 QB模拟赛 —— 上午

    题目链接 T1 1e18 内的立方数有 1e6个 直接枚举可过 二分最优 考场用set  死慢.. #include <cstdio> int t; long long p; int ma ...

  2. C#中RichTextBox字体不统一(中英文)

    this.richTextBox1.Font = new System.Drawing.Font("微软雅黑", 12F);// new System.Drawing.Font(& ...

  3. 解决Wamp各版本中 Apache 文件列表图标无法显示

    Edit the following file manually and change the path to the icons folder (it appears times in the fi ...

  4. replace into 浅析

    转载自:http://blog.itpub.net/22664653/viewspace-1669734/ http://blog.itpub.net/22664653/viewspace-16701 ...

  5. ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id

    远程删除key ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.0.34 如果还是不可以,通过 ssh-keygen 重新生成key

  6. Edmonds-Karp算法,最大流POJ(1459)

    题目链接:http://poj.org/problem?id=1459 解题报告: 电力调度站不涉及流的产生和消耗,不用考虑,Edmonds-Karp算法,就是利用剩余网络和增广路来解决,网络中的最大 ...

  7. 使用shc加密bash脚本程序

    摘要以前写看到别人写的脚本用shc加密的,我也有就了解了下. SHC代表shell script compiler,即shell脚本编译器.通过SHC编译过的脚本程序对普通用户而言是不读的,因此如果你 ...

  8. python 面向对象(二)--访问限制

    在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...

  9. python 将表格多个列数据放到同一个单元格中

      表格模板: 目的将卡片1到卡片5的所有数据组合起来到一个单元格中如下入F列中(工作中为了避免手动复制粘贴),其余不变,因为数据太多 自己一个一个复制工作效率太低,所以写这个脚本是为了方便自己有需要 ...

  10. CentOS7 设置开机自启

    [root@master-1 ~]# systemctl enable mariadb ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/sy ...