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 相关文章推荐
window.location.hash 属性使用说明
Mar 20 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
Jun 10 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
JS功能代码集锦
May 04 Javascript
Bootstrap前端开发案例一
Jun 17 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 Javascript
Vue+Vant 图片上传加显示的案例
Nov 03 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获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
JS中style属性
2006/10/11 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
flask框架视图函数用法示例
2018/07/19 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
logging level级别介绍
2020/02/21 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
pandas按条件筛选数据的实现
2021/02/20 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
Java模拟试题
2014/11/10 面试题
个人优缺点自我评价
2014/01/27 职场文书
文明社区申报材料
2014/08/21 职场文书
作风转变心得体会
2014/09/02 职场文书
水电工岗位职责
2015/02/14 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js