博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日一库:microAjax.js
阅读量:4575 次
发布时间:2019-06-08

本文共 1404 字,大约阅读时间需要 4 分钟。

microAjax.js是08年的一个tiny ajax lib,现在看起来极简陋了。

function microAjax(url, callbackFunction){  this.bindFunction = function (caller, object) {    return function() {      return caller.apply(object, [object]);    };  };  this.stateChange = function (object) {    if (this.request.readyState==4)      this.callbackFunction(this.request.responseText);  };  this.getRequest = function() {    if (window.ActiveXObject)      return new ActiveXObject('Microsoft.XMLHTTP');    else if (window.XMLHttpRequest)      return new XMLHttpRequest();    return false;  };  this.postBody = (arguments[2] || "");  this.callbackFunction=callbackFunction;  this.url=url;  this.request = this.getRequest();    if(this.request) {    var req = this.request;    req.onreadystatechange = this.bindFunction(this.stateChange, this);    if (this.postBody!=="") {      req.open("POST", url, true);      req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');      req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');      req.setRequestHeader('Connection', 'close');    } else {      req.open("GET", url, true);    }    req.send(this.postBody);  }}

调用:

new microAjax("http://www.cnblogs.com/zhuzf/",function (res) {

  alert(res);
});

问题:就是没有new貌似也能调用,其实这样很不可取,都注册倒了window上了,造成全局变量污染。

作者如果要搞原型的话,应该注册到prototype,这样上述的问题不会存在,而且性能也好点(不用每个实例都复制一份函数了)

转载于:https://www.cnblogs.com/zhuzf/archive/2013/01/23/microAjax.html

你可能感兴趣的文章
html5 线程 web Worker
查看>>
原生ajax请求
查看>>
【MATLAB深度学习】神经网络与分类问题
查看>>
Spring MVC -- 数据绑定和表单标签库
查看>>
关于spring配置文件的头部编写
查看>>
VS添加WebService工具
查看>>
Linux系统:Centos7环境搭建Redis单台和集群环境
查看>>
几种排序算法(PHP版)
查看>>
NDK使用之HelloWorld
查看>>
数据库字段数据类型对索引的影响
查看>>
perl6的介绍与下载编译安装
查看>>
mesos cluster
查看>>
转 Linux会话浅析(写得极好,表述清楚语言不硬)
查看>>
Altium Designer 中差分走线
查看>>
linux 解压缩命令
查看>>
GDUT校赛
查看>>
递归方程组解的渐进阶的求法——差分方程法
查看>>
(HDU)1076 --An Easy Task(简单任务)
查看>>
团队精神与集体主义的区别?
查看>>
Spring Boot 入门(Spring Cloud方向)
查看>>