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 相关文章推荐
javascript 常用代码技巧大收集
Feb 25 Javascript
Js基础学习资料
Nov 23 Javascript
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
Js sort排序使用方法
Oct 17 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
Jan 16 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
js获取元素相对窗口位置的实现代码
Sep 28 Javascript
jquery简单实现网页层的展开与收缩效果
Aug 07 Javascript
vue文件树组件使用详解
Mar 29 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
微信小程序服务器日期格式化问题
Jan 07 Javascript
nuxt引入组件和公共样式的操作
Nov 05 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
thinkphp四种url访问方式详解
2014/11/28 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
javascript判断office版本示例
2014/04/11 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
python实现字符串加密成纯数字
2019/03/19 Python
python装饰器常见使用方法分析
2019/06/26 Python
Python程序暂停的正常处理方法
2019/11/07 Python
django框架ModelForm组件用法详解
2019/12/11 Python
virtualenv介绍及简明教程
2020/06/23 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
《两个铁球同时着地》教学反思
2014/02/13 职场文书
爱国演讲稿400字
2014/05/07 职场文书
2014年教师节寄语
2014/08/11 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
办理信用卡工作证明
2014/09/30 职场文书
小学生毕业评语
2014/12/26 职场文书
大学生个人学年总结
2015/02/15 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
解析redis hash应用场景和常用命令
2021/08/04 Redis
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL