jQuery学习笔记之 Ajax操作篇(一) - 数据加载


Posted in Javascript onJune 23, 2014

加载 HTML

我们通常使用加载 HTML 的方法来加载 HTML 片段,并插入到指定位置,假设当前页面为:

<div></div>
<button>load</button>

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

同目录下的 test.html 文件内容为:

<span>test</span>

我们可以使用 load 方法来加载 HTML,将其绑定到按钮的点击事件上:

$('button').click(function() {
  $('div').load('test.html');
 });

点击按钮后:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

加载 JSON

JSON 即 Javascript Object Notation,直译过来即 Javascript 对象表示法,因此它能很方便地表示和传输数据,它规定键和值都必须包含在双引号内,且函数为非法 JSON 值。

{
  "name": "stephenlee", 
  "sex": "male"
}

将上述 JSON 数据保存在 test.json 文件内。我们可以使用 getJSON 方法加载 JSON 数据,同样将其绑定在按钮的点击事件上:

$('button').click(function() {
  $.getJSON('test.json');
 });

由于 getJSON 方法是作为 jQuery 的全局对象而定义的,因此这里需要使用 $ 来调用该方法。这里的 $ 指的是全局 jQuery 对象,而不是 $() 所指的个别 jQuery 对象。因此我们也称 getJSON 函数为全局函数。
但我们会发现上述代码只是获取了 JSON 数据,但看不出任何效果,这里我们可以使用 getJSON 方法的第二参数作为回调函数来测试效果:

$('button').click(function() {
  $.getJSON('test.json', function(data) {
   console.log(data);
   $.each(data, function(index, content) {
    console.log(content);
   })
  });
 });

点击按钮后,我们来看下 console 内的输出:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

这里的 each 函数的第一个参数可以接收数组或对象,第二个参数为值回调函数,将每次循环中数组或对象的当前索引和值做为参数。

加载 JS

有时候我们不希望在页面初次加载时就加载所有的 JS 文件,而是动态地根据需求来加载,假设当前目录下有一个 JS 文件,内容为一个简单的 alert:

$(function() {
 alert('test');//
})

我们可以使用全局函数 getScript 来加载该文件,同样绑定到按钮的点击事件上:

$('button').click(function() {
  $.getScript('test.js');
 });

点击按钮后,加载 test.js 文件,并成功触发 alert。

加载 XML

对 XML 的加载操作与 JSON 类似,因为 XML 文档的作用也是与数据存储相关,在同目录下创建 text.xml 文件,内容为:

<person>
<name>stephenlee</name>
<sex>male</sex>
</person>

加载 XML 文档可以直接使用 get 方法,为什么看上去像一个默认方法,这个可以根据 AJAX 的全称看出端倪 - Asynchronous JavaScript And XML。
同样将其绑定在按钮点击事件上:

$('button').click(function() {
  $.get('test.xml', function(data) {
    console.log(data);
  });
 });

查看 console 结果为:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

这里需要注意,如果 XML 文档内的格式错误,虽然不会报错,但是将无法执行回调函数。

Javascript 相关文章推荐
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
Mar 15 Javascript
angularjs基础教程
Dec 25 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
三步实现ionic3点击退出app程序
Sep 17 Javascript
浅谈Vue 函数式组件的使用技巧
Jun 16 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 #Javascript
yepnope.js使用详解及示例分享
Jun 23 #Javascript
js的延迟执行问题分析
Jun 23 #Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 #Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 #Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 #Javascript
js代码实现的加入收藏效果并兼容主流浏览器
Jun 23 #Javascript
You might like
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php实现的操作excel类详解
2016/01/15 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
python 日期操作类代码
2018/05/05 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
django中ImageField的使用详解
2020/12/21 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
物业电工岗位职责
2013/11/20 职场文书
奠基仪式策划方案
2014/05/15 职场文书
保险公司开门红口号
2014/06/21 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
学校师德师风整改方案
2014/10/28 职场文书
公务员年终个人总结
2015/02/12 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
2015年信访工作总结
2015/04/07 职场文书
大学军训通讯稿
2015/07/18 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android