摆脱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 ...
随机推荐
- 异构(兼容dubbo)SOA系统架构(.net)优化升级
前面一片文章已经提到我司的异构(兼容dubbo)SOA系统架构,解决了不少技术痛点,也还算比较完善,也顺利推广开来. 但作为项目的开发者,自己产品的问题心里是清楚的,离自己满意还是有不小的距离. 在推 ...
- Hibernate实现有两种配置,xml配置与注释配置
hibernate实现有两种配置,xml配置与注释配置. (1):xml配置:hibernate.cfg.xml (放到src目录下)和实体配置类:xxx.hbm.xml(与实体为同一目录中) < ...
- Windows下安装Nginx+php+mysql环境
系统:Windows 7 64位系统 安装之前,首先下载软件: Nginx: http://nginx.org/en/download.html PHP Stable PHP 5.6.26: http ...
- 【夯实PHP基础】PHP的date函数
本文地址 原文地址 提纲: 1. 引言 2. 代码示例 3. 参考资料 1. 引言 今天看到一段代码 $timeNew = date('n月j日', strtotime($oldTime)); 感觉有 ...
- java泛型详解
http://www.cnblogs.com/lwbqqyumidi/p/3837629.html
- 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具
Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...
- JdbcTemplate进行查询
1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong() 例如:下面使用queryForInt()方法传回user表中的记录数: jdbcT ...
- zookeeper集群
0,Zookeeper基本原理 ZooKeeper集群由一组Server节点组成,这一组Server节点中存在一个角色为Leader的节点,其他节点都为Follower.当客户端Client连接到Zo ...
- MySQL基础(非常全)
MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...
- javascript类型系统——正则表达式RegExp类型
× 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String ...