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捕获超链接事件进行局部刷新代码
May 10 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
JQuery操作元素的css样式
Mar 09 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
Sep 28 Javascript
js实现延迟加载的几种方法详解
Jan 19 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
Apr 17 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
Ajax请求超时与网络异常处理图文详解
May 23 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
第一个无线电台是由谁发明的
2021/03/01 无线电
ThinkPHP写第一个模块应用
2012/02/20 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Django  ORM 练习题及答案
2019/07/19 Python
django的model操作汇整详解
2019/07/26 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Python Selenium库的基本使用教程
2021/01/04 Python
上海微创软件面试题
2012/06/14 面试题
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
Python Matplotlib库实现画局部图
2021/11/17 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL