js学习总结----编写简单的ajax方法库

具体代码如下:

~function(){//ajax:实现ajax请求的公共方法;当一个方法传递的参数过多,而且还不固定,我们使用对象统一传值法(把需要传递的参数值都放在一个对象中,一起传递进去即可)function ajax(options){//把需要使用的参数值设定一个规则和初始值var _default = {url:"",//请求的地址type:"get",//请求的方式dataType:"json",//设置请求回来的内容格式async:true,//请求是同步还是异步data:null,//放在请求主体中的内容(POST)getHead:null,//当READY STATE===2的时候执行的回调方法success:null//当READY STATE===4的时候执行的回调方法
        };//使用用户自己传递进来的值覆盖我们的默认值for(var key in options){if(options.hasOwnProperty(key)){_default[key] = options[key];}}//如果当前的请求方式是get,我们需要在URL的末尾加随机数清楚缓存if(_default.type==="get"){_default.url.indexOf("?") >=0 ? _default.url += "&" : _default.url += "?";_default.url +="_="+Math.random();}//SEND AJAXvar xhr = createXHR();xhr.open(_default.type,_default.url,_default.async);xhr.onreadystatechange = function(){if(/^2\d{2}/.test(xhr.status)){//想要在READY STATE等于2的时候做一些操作,需要保证AJAX是异步请求if(xhr.readyState === 2){if(typeof _default.getHead === "function"){_default.getHead.call(xhr);}}if(xhr.readyState === 4){var val = xhr.responseText;//如果传递的参数值是json,说明获取的内容应该是json格式的对象if(_default.dataType === "json"){val = "JSON" in window ? JSON.parse(val) : eval("("+val+")");}_default.success && _default.success.call(xhr,val)}}}xhr.send(_default.data);}window.ajax = ajax;
}()ajax({url:"data.txt",type:"get",dataType:"json",async:false,getHead:function(){//this xhr当前AJAX对象
    },success:function(data){//this xhr当前AJAX对象//data:我们从服务器获取的主体内容
    }})

 

转载于:https://www.cnblogs.com/diasa-fly/p/7272363.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netlify支持php吗,hexo netlify 搭建简易博客

npm install hexo-cli -ghexo init blogcd blognpm installhexo server将本地文件夹推送到github修改主题git clone https://github.com/jangdelong/hexo-theme-xups.git themes/xups themes/xups修改yml配置文件重新hexo server自己的博客sleepy-poincare-e0ca11.netlify.c…

jps、jstack、jmap、jhat、jstat、hprof使用详解

https://my.oschina.net/feichexia/blog/196575#comment-list A、 jps(Java Virtual Machine Process Status Tool) jps主要用来输出JVM中运行的进程状态信息。语法格式如下: 如果不指定hostid就默认为当前主机或服务器。 命令行参数选项说明如下:…

oracle数据库日期格式的运算,Oracle时间类型date,timestamp时间差计算

Oracle的时间类型有两种date和timestamp. date精确到秒,timestamp精确到毫秒.1.计算date类型的时间差可以先把年,月,日,小时,分,秒用to_char函数拆分出来,再用to_number函数转换成数值类型.有了这些单独分开的时间就好办了.就再一个个的去减,记得考虑单位换算就行.比如都转换…

pta乙级之路

1017 A除以B (20分) #include #include #include<math.h> using namespace std; int main() { string str; cin>>str; int n,ch[1009]; cin>>n; int lenstr.length(); for (int i0;i<len;i){ ch[i]str[i]-‘0’; } for (int i0;i<len-1;i){ ch[i1]10*(…

oracle禁止修改密码,Oracle 用户密码过期后不允许修改密码的示例代码

--本人是初学者&#xff0c;不知道还有没有更好的方法create table PASSWD_CHANGED(USER_NAME VARCHAR2(20),OLD_PASSWD VARCHAR2(100),NEW_PASSWD VARCHAR2(100))CREATE OR REPLACE FUNCTION my_password_verify(usernameVARCHAR2,passwordVARCHAR2,old_passwordVARCHAR2)RETU…

查看网关

简单记两个 [rootoracle ~]# ip route show default via 192.0.2.2 dev eth0 proto static 192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.110 metric 1 [rootoracle ~]# route -n Kernel IP routing table Destination Gateway Genmask …

double的四舍五入和上下取整

在头文件中有math。 向上取整&#xff1a;ceil(double x); 向下取整&#xff1a;floor(double x); 四舍五入&#xff1a;round(double); 特别注意&#xff1a;在C语言中上面的三个函数返回的是double型的。 但是&#xff1a; #include<iostream> #include<cmath> …

url去除掉一个参数php,php怎样去掉url中的参数_后端开发

php去掉url中的参数的要领是&#xff1a;能够经由过程trim()函数来完成。该函数能够删除字符串中的指定字符&#xff0c;并返回已修正的字符串。细致使用要领如&#xff1a;【trim($url,"?");trim($url,"#");】。相干函数引见&#xff1a;(引荐教程&#…

C++之类的静态成员变量和静态成员函数

static静态成员函数 在类中。static 除了声明静态成员变量&#xff0c;还能够声明静态成员函数。普通成员函数能够訪问全部成员变量。而静态成员函数仅仅能訪问静态成员变量。我们知道。当调用一个对象的成员函数&#xff08;非静态成员函数&#xff09;时&#xff0c;系统会把…

Oracle杀事务数据库崩溃,关于pl/sql dev窗口崩溃导致锁表

今天在用pl/sql dev写sql的时候&#xff0c;刚刚写到一个select XXX from table for update,打开了锁的按钮&#xff0c;进行了数据修改&#xff0c;这个时候没有commit&#xff0c;因为临时有事&#xff0c;所以先出去一会&#xff0c;半个小时回来后&#xff0c;发现点击pl/s…

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

好吧&#xff0c;现在我们假设你已经安装好了VS Code开发工具、.Net Core 2.0预览版的SDK dotnet-sdk-2.0.0&#xff08;注意自己的操作系统&#xff09;&#xff0c;并且已经为VS Code安装好了C#扩展&#xff08;在VS Code的扩展菜单中输入OmniSharp&#xff0c;安装扩展即可&…

oracle12 扩充表空间,oracle查询及扩充表空间

查询表空间目录及是否自动扩展select file_id,file_name,tablespace_name,autoextensible,increment_by from dba_data_files order by file_id desc;总的表空间情况select substr(a.tablespace_name,1,15) tablespacename,sum(a.bytes/1024/1024) as "totle_size(M)"…

WPF--TextBlock的ToolTip附加属性

大家可能在项目中&#xff0c;有的时候&#xff0c;由于显示的内容过长&#xff0c;所以&#xff0c;需要显示一部分内容&#xff0c;然后后面用省略号&#xff0c;把鼠标放上去&#xff0c;会显示出来全部的内容。 作为一个LowB程序员的我&#xff0c;第一反应是SubString截取…

L2-001 紧急救援 (25 分)

L2-001 紧急救援 (25 分)作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#x…

oracle 虚拟补丁,趋势科技虚拟补丁(Virtual Patch)

本帖最后由 vger520 于 2012-4-26 09:20 编辑预先防止漏洞遭到攻击Virtual Patch(虚拟补丁)实际案例微软最近紧急通知系统管理员立即安装一个影响所有 Windows 系统的重大安全更新&#xff1a;「MS12-020远程桌面的漏洞可能会允许远端执行程序码」。而趋势科技的客户在该漏洞发…

Laravel框架一:原理机制篇

转载自http://www.cnblogs.com/XiongMaoMengNan/p/6644892.htmlLaravel作为在国内国外都颇为流行的PHP框架&#xff0c;风格优雅&#xff0c;其拥有自己的一些特点。 一. 请求周期 Laravel 采用了单一入口模式&#xff0c;应用的所有请求入口都是 public/index.php 文件。 注册…

L2-002 链表去重 (25 分) 船新方法

L2-002 链表去重 (25 分)给定一个带整数键值的链表 L&#xff0c;你需要把其中绝对值重复的键值结点删掉。即对每个键值 K&#xff0c;只有第一个绝对值等于 K 的结点被保留。同时&#xff0c;所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15&…

oracle中间键配置,Oracle Exalogic中间件云服务器简介及产品配置特点(2)

Oracle Exalogic中间件云服务器 —— 软硬件结合的优化平台目前&#xff0c;企业所面临的应用挑战大多集中在异构环境、复杂的多层应用以及现有环境的低利用率等。于是&#xff0c;企业开始根据实际业务需求和投资情况将系统进行整合设计&#xff0c;旨在精简架构以提高系统的灵…

System

类&#xff1a; System.TimeDate 关于时间的类转载于:https://www.cnblogs.com/Sea1ee/p/7285238.html

L2-003 月饼 (25 分)

L2-003 月饼 (25 分)月饼是中国人在中秋佳节时吃的一种传统食品&#xff0c;不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量&#xff0c;请你计算可以获得的最大收益是多少。 注意&#xff1a;销售时允许取出一部分库存。样例给出的…