一个封装的Ajax类

ajax|封装

用法: 
new Ajax().Request(url,cmd,async,method,postString,title) 
参数: 
url: 请求页面URL(必填) 
cmd: 返回值处理函数(必填) 
async: 是否异步 ,(ture|false), 默认true 
method: 请求方式,(post|get), 默认get 
postString: 请求方式为post时,请求内容 
title: 请求内容标题 

[复制此代码]CODE:
// Ajax 封装 2007-3-13
function createXMLHttpRequest() {
    try {        
            if (window.XMLHTTPRequest) {
                    return new XMLHttpRequest();
            }
            else if (window.ActiveXObject) {
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        catch (e) {alert("XMLHttpRequest对象无法创建!请检查IE安全设置!");}
}
function messageDiv(t)
{
    var v = document.createElement("<div>");
    v.innerHTML = "<table style=\"width:300px;\" id=message>" +
                  "<tr style=\"font-size:12px;background-color:#EEEEff;color:#227933;height:20px\">" + 
                  "<td style=\"padding:2px;border-top:1px solid #E1E1E1;border-left:1px solid #E1E1E1;border-bottom:1px solid #818181;border-right:1px solid #A1A1A1\">" +
                  "<nobr><img src=refresh.gif align=absmiddle> " + t + ",<span id=Span1>连接未初始化...</span></nobr></td></tr></table>";
    var l = document.getElementsByName("message").length;
    v.style.cssText = "position:absolute;bottom:" + (l*24) + "px;left:0px;display:none";
    document.body.appendChild(v);
    this.clear = function () {
        document.body.removeChild(v);
        var msg = document.getElementsByName("message");
        for (var i=0;i<msg.length;i++){
            msg[i].parentNode.style.cssText = "position:absolute;bottom:" + (i*24) + "px;left:0px";
        }
    }
    this.showmsg = function (s) {
        v.style.display = "";
        v.all.Span1.innerHTML = s;
    }
}
function Ajax() {
    var x = new createXMLHttpRequest();
    this.Request = function (url,cmd,async,method,postString,title) {
        if (method!="post") method = "post"; else method = "get";
        if (async!=true) async = true; else async = false;
        if (typeof(postString)!="string") postString="";
        if (typeof(title)!="string") title="正在获取数据"; else title="正在获取" + title;
        var msgbox = new messageDiv(title);
        x.onreadystatechange = function ()
        {
            if (async) switch (x.readystate) {
            case 1:
                msgbox.showmsg("正在初始化连接...");
                return;
            case 2:
                msgbox.showmsg("正在发送数据...");
                return;
            case 3:
                msgbox.showmsg("正在接收数据...");
                return;
            case 4:
                msgbox.showmsg("数据接收完成...");
                if (x.status == 200) {
                    cmd(x.responseText);
                    msgbox.clear();
                }
                else {
                    msgbox.showmsg("请求失败," + x.statustext + "(" + x.status + ")");
                    setTimeout(msgbox.clear,3000);
                }
                return;
            }
        }
        x.open (method,url,async);
        if (method=="post") {msgbox.showmsg("正在接收数据...");x.send(postString);} else x.send();
        if (!async) {
            msgbox.showmsg("数据接收完成...");
            cmd(x.responseText);
            msgbox.clear();
        }
    }    
}

 

时间: 2024-08-30 01:20:43

一个封装的Ajax类的相关文章

一个封装的Ajax类_AJAX相关

用法:  new Ajax().Request(url,cmd,async,method,postString,title)  参数:  url: 请求页面URL(必填)  cmd: 返回值处理函数(必填)  async: 是否异步 ,(ture|false), 默认true  method: 请求方式,(post|get), 默认get  postString: 请求方式为post时,请求内容  title: 请求内容标题  复制代码 代码如下: // Ajax 封装 2007-3-13 fu

一个简单的 Ajax 类

var Configuration = { MaxHttpRequest : 3} function Ajax(){ this.Version = "1.0.1"; this.Query = new Array(Configuration.MaxHttpRequest);  this.RequestCount = 0; this.XmlHttp = null; } Ajax.prototype.Create = function(){ try{   this.XmlHttp = new

一个简单的AJAX请求类

ajax|请求   在给blog加上无刷新搜索和即时验证检测后,又看了下代码,感觉太过麻烦,就把XMLHttpRequest请求封装到一个类里面,用起来方便多了,不用记那么多代码,什么创建XMLHttpRequest对象什么的,这部分代码也是重用性比较高的-已经打包,在日志的末尾下载. 要看效果的话点开侧边栏里的日志搜索,里面有一个无刷新搜索,就是了,或者在阅读日志或留言簿里的注册码那里有即时检测,如果不输入验证码或者输错了验证码,输入框都会变红的' 类名:AJAXRequest 创建方法:va

一个简单的AJAX请求类_AJAX相关

在给blog加上无刷新搜索和即时验证检测后,又看了下代码,感觉太过麻烦,就把XMLHttpRequest请求封装到一个类里面,用起来方便多了,不用记那么多代码,什么创建XMLHttpRequest对象什么的,这部分代码也是重用性比较高的-已经打包,在日志的末尾下载. 要看效果的话点开侧边栏里的日志搜索,里面有一个无刷新搜索,就是了,或者在阅读日志或留言簿里的注册码那里有即时检测,如果不输入验证码或者输错了验证码,输入框都会变红的^_^ 类名:AJAXRequest 创建方法:var ajaxob

一个Ajax类

ajax 一个Ajax类function Ajax(url,recvT,stringS,resultF) {    this.url = url;    this.stringS = stringS;    this.xmlHttp = this.createXMLHttpRequest();    if (this.xmlHttp == null) {        alert("erro");        return;    }    var objxml = this.xml

封装的一个asp.net验证码类

第一个反映是验证码的这些属性是否可以设置(也就是说是封装成一个类,然后以暴露公有属性和方法的方式来使用的,还是在直接在一般处理程序中实现了验证码的生成到输出),结果比较可惜,是后者...... 里面的算法感觉挺不错,至少对于我这种对算法几乎是不懂的人来说是这样,于是想到去封装一下她然后无耻地纳入自己的类库中去^^ old原文件如下:点击下载 首先分析一下这份代码中的不足(自己觉得的): 1.面向过程式的编程,如果要修改验证码的属性,例如修改字体的大小.背景颜色等细节的东西,需要去一般处理程序中找

封装的一个asp.net验证码类_实用技巧

第一个反映是验证码的这些属性是否可以设置(也就是说是封装成一个类,然后以暴露公有属性和方法的方式来使用的,还是在直接在一般处理程序中实现了验证码的生成到输出),结果比较可惜,是后者...... 里面的算法感觉挺不错,至少对于我这种对算法几乎是不懂的人来说是这样,于是想到去封装一下她然后无耻地纳入自己的类库中去^^ old原文件如下:点击下载 首先分析一下这份代码中的不足(自己觉得的): 1.面向过程式的编程,如果要修改验证码的属性,例如修改字体的大小.背景颜色等细节的东西,需要去一般处理程序中找

在struts2框架中,怎么使用一个ModelDriven封装两个类到javaBean中

问题描述 在struts2框架中,怎么使用一个ModelDriven封装两个类到javaBean中 在struts2框架中,怎么使用一个ModelDriven封装两个类到javaBean中,急急急!!! 解决方案 额,貌似不能显示尖括号<>啊,我再发一遍吧,用( )代替,能理解就行 提供两个思路: 1. 如果两个类有继承关系的话,只要封装一个即可.比如Man继承Person,那我只要拿到Man即可: 2. 如果不是继承关系,那可以实现两个ModelDriven,比如public class x

asp.net c#封装的一个xml文件读取类

A:在XML文件中有多个集,每个集里面包含多个节点. B:可根据集的名字的取出这个集合下面的所有节点值 C:可一次性取出所有的节点值 D:其中有一个是无限拓展的就是:表达式 E:把集合读取到一个模型(实体类)当中 getmxl.cs文件  代码如下 复制代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace XmlOpe