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 相关文章推荐
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
各浏览器对document.getElementById等方法的实现差异解析
Dec 05 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
JavaScript实现自动变换表格边框颜色
May 08 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
angularjs实现简单的购物车功能
Sep 21 Javascript
vue template中slot-scope/scope的使用方法
Sep 06 Javascript
微信小程序实现带缩略图轮播效果
Nov 04 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
javascript异步编程的六种方式总结
May 17 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程序的方法小结
2012/02/23 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
大学毕业生个人自荐信范文
2014/01/08 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
电工实训报告总结
2014/11/05 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
小学感恩主题班会
2015/08/12 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL