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 相关文章推荐
[JS源码]超长文章自动分页(客户端版)
Jan 09 Javascript
JavaScript动态调整TextArea高度的代码
Dec 28 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
jQuery 开发者应该注意的9个错误
May 03 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
JS获取网页图片name属性的方法
Apr 01 Javascript
浅谈javascript中for in 和 for each in的区别
Apr 23 Javascript
javascript封装简单实现方法
Aug 11 Javascript
浅谈jquery页面初始化的4种方式
Nov 27 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
浅谈React Native 中组件的生命周期
Sep 08 Javascript
解决vue axios的封装 请求状态的错误提示问题
Sep 25 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&amp;mysql(四)
2006/10/09 PHP
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
JS验证字符串功能
2017/02/22 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
JS一个简单的注册页面实例
2017/09/05 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python3爬虫全国地址信息
2019/01/05 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
python 函数中的参数类型
2020/02/11 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
加班费申请报告
2015/05/15 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫