js jquery ajax的几种用法总结(及优缺点介绍)


Posted in Javascript onJanuary 28, 2014

这篇文章,是我不知道什么是ajax到熟练运用ajax的一个历程。

一,最原始的方式来运用ajax

<SCRIPT language=javascript>
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//定义了一个ajax的入口函数,供用view层用户调用
function show_type(type_id) {
// alert(id);
createXMLHttpRequest();
var url = "../ajax/shop_type_status.php?id="+type_id+"&time="+Math.random();
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){ show_back();}
xmlHttp.send(null);
}
//回调函数,将从调用的php文件中取得的数据,反还给用户
function show_back() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//document.getElementById('cat_id').value = id;
document.getElementById('type_status').innerHTML = xmlHttp.responseText;
}
}
}
</SCRIPT>

个人分析:这种方法挺好的,简单灵活,但是有一点不好,就是冗余代码比较多,不利于后期维护。

二,js端封装的ajaxrequest

这个东西,对于习惯了用javascript的人来说,是一个不错的选择,它是装上面所说的那种方法简单的封装了一下,做了统一的调用。感觉不错,代码挺多的就不贴出来了,大家可以到google搜ajaxrequest。

//ajaxrequest.js里面有一个这个方法这个方法是供view端调用的接口,接口可以有多个,根据情况自己加

function ajax_action_fun(url,fun) {
var ajax=new AJAXRequest;
ajax.get(
url,
function(obj){alert(obj.responseText);fun()}
);
}
//html里面调用这个接口
get_shop_son_list   //是回调后执行的方法名
ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);
function get_shop_list(resValue){
//这里就是你要的操作
}

个人分析:它弥补了第一种方法的不足,统一调用接口,可以设置回调函数,缺点如果有的话,不在ajaxrequest本身而在于javascript,举个例子吧

javascript:如果我想调用ajax_action_fun这个方法我要在html里加个东西

<a class="showshop" href='javascript:' onclick=ajax_action_fun("../ajax/shop_ajax.php?type=1",get_shop_list);>显示店</a>

jquery:用它可以尽量把js和html分开,这对于后期维护是很帮助的,会节省很多时间,例如,全站换html;

$(".showshop").bind("click", {url: "../ajax/shop_ajax.php?type=1",function:get_shop_list}, ajax_action_fun);
这样就可以不用在html里面写onclick事件了

三,jquery的ajax
1)

$.ajax({
   type: "POST",
   url: "test.php",           //调用的php文件
   data: "name=zhang",
   success: function(msg){            //回调函数
     alert( "Data Saved: " + msg );       //这里是操作
   }
 });

2)
//调用test.php文件,传个参数,data是返回的数据
$.post("test.php", { name: "zhang"},
   function(data){
     alert("Data Loaded: " + data);
   });
Javascript 相关文章推荐
input的focus方法使用
Mar 13 Javascript
基于jquery实现点击左右按钮图片横向滚动
Apr 11 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
Javascript基础教程之if条件语句
Jan 18 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
10行代码实现微信小程序滑动tab切换
Dec 28 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
vue点击按钮实现简单页面的切换
Sep 08 Javascript
js中哈希表的几种用法总结
Jan 28 #Javascript
js日期对象兼容性的处理方法
Jan 28 #Javascript
JS cookie中文乱码解决方法
Jan 28 #Javascript
JS正则表达式验证数字代码
Jan 28 #Javascript
js的隐含参数(arguments,callee,caller)使用方法
Jan 28 #Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 #Javascript
setInterval与clearInterval的使用示例代码
Jan 28 #Javascript
You might like
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php之可变变量的实例详解
2017/09/12 PHP
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
Javascript缓存API
2016/06/14 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详细介绍Python的鸭子类型
2016/09/12 Python
python实现ID3决策树算法
2017/12/20 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
python3.5的包存放的具体路径
2020/08/16 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
大学生毕业求职简历的自我评价
2013/10/24 职场文书
电子商务专业自我鉴定
2013/12/18 职场文书
银行学习十八大感想
2014/01/11 职场文书
宿舍违规检讨书
2014/01/12 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
租车协议书范本
2014/04/22 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
大学生自荐书范文
2015/03/05 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS