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 相关文章推荐
JavaScript prototype属性使用说明
May 13 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
Sep 05 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
基于JavaScript实现复选框的全选和取消全选
Feb 09 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
JS中的三个循环小结
Jun 20 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
vuex 动态注册方法 registerModule的实现
Jul 03 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 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
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python如何使用unittest测试接口
2018/04/04 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python dict的常用方法示例代码
2020/06/23 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
平面设计自荐信
2013/10/07 职场文书
党员自我评价分享
2013/12/13 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
赤壁观后感(2)
2015/06/15 职场文书
感恩主题班会教案
2015/08/12 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python