摆脱jquery,用自己的JS库实现ajax功能
可以将下面的代码保存在一个文件里如:myAjax.js,以后在项目中如果觉得jquery那一套很重,就完全可以使用自己的ajax库,不用担心性能和兼容性!
/**
* 创建ajax请求对象
* @returns XMLHTTPREQUEST
*/
function createAjaxObj(){
var req ;
if(window.XMLHttpRequest){
req=new XMLHttpRequest();
}else{
req=new ActiveXObject("Msxml2.XMLHTTP");
}
return req;
}
/**
* 发送 ajax 请求
* @param method get/post
* @param url 请求路径
* @param params 参数列表 格式a=?&&b=?
* @param async true 异步 false 同步
* @param handle200 处理成功的函数
* @param loading 处理加载中的函数
* @param handle404 处理找不到地址的函数
* @param handle500 处理服务器内部出错的函数
*/
function sendAjaxReq(method,url,params,async,handle200,loading,handle404,handle500){
var req = createAjaxObj();
req.onreadystatechange = function(){
if(4==req.readyState){
if(200==req.status){
if(handle200){
handle200(req.responseText);
}
}else if(404==req.status){
if(handle404){
handle404();
}
}else if(500==req.status){
if(handle500){
handle500();
}
}
}else{
if(loading){
loading();
}
}
};
if("get"==method.toLowerCase()){
req.open(method,url+(params==null?"":"?"+params),async);
req.send(null);
}else if("post" ==method.toLowerCase()){
req.open(method,url,async);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send(params);
}
}
/** For Example
// 使用自己的ajax 类库发送 请求
sendAjaxReq("post",
"${base}/brandAjax/checkBrandId.do",
"brandId="+brandId,true,
function(req){
eval(" var data="+ req.responseText);
if(data.message==true){
alert("品牌ID:"+brandId+"已存在,不可重复添加!");
$("#hidBrandId")[0].innerHTML="";
$("#brandName").val("");
}else{
submitFlag=1;
$("#selBrand")[0].style.display = "none";
}
});
*/
摆脱jquery,用自己的JS库实现ajax功能的更多相关文章
- 编写自己的javascript功能库之Ajax(仿jquery方式)
本人学习的是php,所以就用php跟js来演示代码了,主要是锻炼自己写js的能力,练练手而已. 下面这是我编写的操作ajax的代码功能,勉强让我称之为库吧.. js代码实例(tool.ajax.js) ...
- 前端之Vue.js库的使用
vue.js简介 Vue.js读音 /vjuː/, 类似于 view Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大框架 ...
- 解决jQuery多个版本,与其他js库冲突方法
jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,这个问题 jquery早早就有给我们预留处理方法了,下面一起来看看解决办法. 1.同一页面jQuery多个版本或冲突解决方法. < ...
- jQuery与其他JS库共存
* 事件 * jQuery与其他JS库共存 * 调用jQuery.noConflict()方法 * 表示jQuery将"$"符号的使用权交出 * 通过两种方式将"$&qu ...
- 仿照jquery封装一个自己的js库(二)
本篇为完结篇.主要讲述如何造出轮子的高级特性. 一. css方法的高级操作 先看本文第一部分所讲的dQuery css方法 //css方法 dQuery.prototype.css=function( ...
- 仿照jquery封装一个自己的js库(一)
所谓造轮子的好处就是复习知识点,加深对原版jquery的理解. 本文系笔者学习jquery的笔记,记述一个名为"dQuery"的初级版和缩水版jquery库的实现.主要涉及知识点包 ...
- jQuery与其他JS库冲突解决
实际开发中遇到JQuery与其他js库起冲突 究其原因,是它们的全局对象定义冲突了,特别是变量”$”, 可重载$函数.使用jQuery.noConflict()就可以通过重载$函数 例:项目中应用的 ...
- 怎样让jQuery和其它js库共存
怎样让jQuery和其它js库共存 有时候需要同时使用jQuery和其它javascript,比如在joomla中默认的是motools,但很多人还是希 望能够使用jQuery,如果直接调用的话,由于 ...
- jQuery与其它js库共用
<script src="js/zepto.min.js"></script>//其它js库<script src="http://comm ...
随机推荐
- 从零开始学Python08作业思路:开发简单的FTP
一,作业要求 开发简单的FTP 1,用户登录 2,上传/下载文件 3,不同用户家目录不同 4,查看当前目录下文件 5,充分使用面向对象 二,程序文件清单 Folder目录:用户上传文件家目录 db目录 ...
- [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效
症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>
- 配置管理工具 Puppet的安装和使用
今天碰到一个linux下的puppet的问题,才发现原来这个是 用ruby语言编写的自动化的管理工具.有兴趣的同学,可以学习下. 这里重点讲述下 mac下 puppet的安装方法: 在Mac下采用Gi ...
- Tomcat启动报错整理
1.启动报 Connector attribute SSLCertificateFile must be defined when using SSL with APR conf\server.xml ...
- tomcat 7 WARNING: A context path must either be an empty string or start with a '/' and do not end with a '/'. The path [/] does not meet these criteria and has been changed to []
tomcat 7 WARNING: A context path must either be an empty string or start with a '/' and do not end w ...
- jquery点击切换背景色
刚在自己的前端技术群里有个小伙伴儿问到这个问题,点击的时候进行红色背景和白色背景的切换,然后我就临时想到了一个解决方法,在这里记录一下吧,希望还有别的刚学习前端的小伙伴儿能用到,大神就请绕道咯!另外提 ...
- 未能加载包“Microsoft SQL Server Data Tools”
直接在vs2013里的App_Data目录创建数据库,在服务器资源管理器中查看时报错: 未能加载包“Microsoft SQL Server Data Tools” 英文: The 'Microsof ...
- SuperMap iServer 扩展服务及扩展服务提供者范例
一.扩展服务实例 1.将iserver-extend1下的listener.java打成jar包2.复制到D:\SuperMap-iServer\webapps\iserver\WEB-INF\lib ...
- Linux系统实战项目——sudo日志审计
Linux系统实战项目——sudo日志审计 由于企业内部权限管理启用了sudo权限管理,但是还是有一定的风险因素,毕竟运维.开发等各个人员技术水平.操作习惯都不相同,也会因一时失误造成误操作,从而 ...
- Google C++单元测试框架GoogleTest---AdvancedGuide(译文)上
本文是gtest高级测试指南的译文,由于文章太长,分上下两部分. 一.简介 本文档将向您展示更多的断言,以及如何构造复杂的失败消息,传播致命的故障,重用和加速您的测试夹具,并在您的测试使用各种标志. ...