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 相关文章推荐
经常用到的JavasScript事件的翻译
Apr 09 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
详解Angular2 之 结构型指令
Jun 21 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
Jul 24 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 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中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
Python爬虫中urllib库的进阶学习
2018/01/05 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Django权限设置及验证方式
2020/05/13 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
汇科协同Java笔试题
2012/03/31 面试题
毕业自荐信
2013/12/16 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
实习单位指导教师评语
2014/12/30 职场文书
关于长城的导游词
2015/01/30 职场文书
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android
如何基于python实现单目三维重建详解
2022/06/25 Python