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 多浏览器分别判断代码
Apr 01 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
jQuery插件passwordStrength密码强度指标详解
Jun 24 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
JS将指定的某个字符全部转换为其他字符实例代码
Oct 13 Javascript
vue实现抽屉弹窗效果
Nov 15 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异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
js中new一个对象的过程
2017/02/20 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
python冒泡排序简单实现方法
2015/07/09 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
Python 对象中的数据类型
2017/05/13 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
《菜园里》教学反思
2014/04/17 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
师范生见习报告范文
2014/11/03 职场文书
中学生逃课检讨书
2015/02/17 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
雷锋之歌观后感
2015/06/10 职场文书