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 相关文章推荐
Jquery Ajax.ashx 高效分页实现代码
Oct 20 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
如何在node的express中使用socket.io
Dec 15 Javascript
JavaScript知识点总结之如何提高性能
Jan 15 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
js实现表格筛选功能
Jan 18 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
vue+mock.js实现前后端分离
Jul 24 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
如何运行Python程序的方法
2013/04/21 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python的条件锁与事件共享详解
2019/09/12 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
怎样创建、运行java程序
2014/08/01 面试题
知识改变命运演讲稿
2014/05/21 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL
Redis高可用集群redis-cluster详解
2022/03/20 Redis