一个封装的Ajax类

2013-10-06  来源:本站原创  分类:AJAX相关  人气:0 

用法:
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
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();
        }
    }
}
相关文章
  • 一个封装的Ajax类 2013-10-06

    用法: 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 function createXMLHttp

  • 一个简单的AJAX请求类 2013-11-12

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

  • 封装的一个asp.net验证码类 2015-02-09

    昨天在一个Q群上面群主发了一个用ASP.NET实现验证码的demo,下载下来然后运行正常,页面上的img标签成功调用了一个一般处理程序并显示了中文的验证码图片,虽然有点模糊,但是可见上面是四个中文,图片背景为白色,背后有噪点线,边框黑色. 第一个反映是验证码的这些属性是否可以设置(也就是说是封装成一个类,然后以暴露公有属性和方法的方式来使用的,还是在直接在一般处理程序中实现了验证码的生成到输出),结果比较可惜,是后者...... 里面的算法感觉挺不错,至少对于我这种对算法几乎是不懂的人来说是这样

  • 自己动手封装的 ajax 2014-02-02

    过完年后项目开发比较紧张,好长时间没写文章了.好在项目进入测试实施后期,可以有时间总结一些自己最近项目的心得了.自从提出WEB2.0富客户以后AJAX技术现在是越来越流行,有待代替CS桌面程序之势. 以前开发用了很多AJAX的技术比如EXT,prototype,jQuery等等,但都是开源封装好的AJAX框架.从没真正用过纯正的AJAX,故参照prototyp面向对象思想自己封装了一个AJAX框架.希望能给读者参考.帮助.评价. /* * 自己封装的ajax * * * @author 姜松 *

  • javascript ajax类AJAXRequest2007-12-31 更新 2014-02-15

    AJAXRequest是一个轻量级的AJAX应用程序开发框架,兼容Firefox.IE.Opera.Safari,可以方便地进行一些AJAX中经常需要用到的操作,从而简化开发步骤,减少重复代码编写量. 如果在使用过程中发现了问题,或者有好的意见和建议,可以给我发邮件,vipxjw[at]163[dot]com. AJAXRequest v0.7.12 2007-12-31 发布 1. 添加 stopupdate 方法 2. 修改 update 方法返回值为更新请求ID,用于 AJAXReques

  • Python访问MySQL封装的常用类实例 2015-02-25

    这篇文章主要介绍了Python访问MySQL封装的常用类,实例详述了针对MySQL使用query执行select及使用update进行insert.delete等操作的方法,需要的朋友可以参考下 本文实例讲述了Python访问MySQL封装的常用类.分享给大家供大家参考.具体如下: python访问mysql比较简单,下面整理的就是一个很简单的Python访问MySQL数据库类. 自己平时也就用到两个mysql函数:查询和更新,下面是自己常用的函数的封装,大家拷贝过去直接可以使用. 文件名:DB

  • 一个简单的ajax实例:ajax与struts2实例 2010-08-14

    前言 对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用.但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西.leo开发一个简单的ajax实例,用的是ajax与struts2结合而开发的实例. 在学习实例前,leo觉得有必要看看,了解下下面这些资料,对ajax学习很重要也很必要. 什么是Ajax 读音:e:j^ks .AJAX即"Asynchronous JavaScript and XML"(异步JavaScript和XML),AJAX并非缩写词,而

  • 自己编写的ajax类_javascript 2012-07-27

    前些天,自己特别忠于对javascript的学习,看到网上出色的javascript AJAX应用,于是变萌发了编写一个属于自己的Ajax类的想法. 代码还有很多不足,希望各位大侠们帮忙之处,小弟在这不慎感激! 此类还在不断优化中...呵呵 说明: 提供Ajax.get()发送请求 提供Ajax.post()发送请求 内部绑定定时函数来执行循环发送请求 合理处理空闲请求 /* * Ajax-lib.js * {by}d.n.sky * {website}desetang.com * {descr

  • PHP判断一个请求是Ajax请求还是普通请求 2013-08-05

    Javascript中大多数的框架如 jquery(jquery ui.jquery easyui).Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息,因此每当发送一个ajax请求你就可以在服务器端侦测到是 Ajax 请求: 1.通过传递_GET参数的方法简单实现网页请求的判断. url上这么传递:*******.php?ajax php这么判断: if(isset($_GET['ajax'])){ ...这是一个ajax请求,

  • 一个PHP的QRcode类与大家分享 2013-11-26

    一个PHP的QRcode类与大家分享,需要的朋友可以参考下. 类的代码: define('QR_MODE_NUL', -1); define('QR_MODE_NUM', 0); define('QR_MODE_AN', 1); define('QR_MODE_8', 2); define('QR_MODE_KANJI', 3); define('QR_MODE_STRUCTURE', 4); // Levels of error correction. define('QR_ECLEVEL_L

  • 推荐一个封装好的getElementsByClassName方法 2013-12-28

    这篇文章主要推荐一个封装好的getElementsByClassName方法,需要的朋友可以参考下 我们知道,原生的JS给我们提供了getElementsByClassName方法,可以通过此方法获取到含有某指定class的节点集合,注意是集合,也就是此函数返回一个数组. 但是,IE却并不支持这个方法,但这方法却是很有实用性,所以,我们又不得不专门为IE实现这么一个函数. function getElementsByClassName(oEle,sClass,sEle){ if(oEle.get

  • 一个简单的ajax上传进度显示示例 2014-01-21

    这篇文章主要介绍了一个简单的ajax上传进度显示示例,需要的朋友可以参考下 本例用了jquery.form.js请到演示页面查看 CSS Code <style> form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px } #progress { position:relative; width:400px; border: 1px solid #ddd; pa

  • ajax类AJAXRequest v0.8.01 2008-01-31 最新版附使用帮助 2014-02-09

    AJAXRequest是一个轻量级的AJAX应用程序开发框架,兼容Firefox.IE.Opera.Safari,可以方便地进行一些AJAX中经常需要用到的操作,从而简化开发步骤,减少重复代码编写量. 如果在使用过程中发现了问题,或者有好的意见和建议,可以给我发邮件,vipxjw[at]163[dot]com. AJAXRequest v0.7.12 2007-12-31 发布 1. 修正了使用postf方法发送表单时,表单中带有name为action或method字段时出错的问题. 更多详细说

  • 好用的AJAX类代码分享 2014-03-27

    好用的AJAX类代码分享,需要的朋友可以参考下. ajax.js -------------------------[ajax类]-------------------------- function Ajax(recvType){ var aj=new Object(); aj.recvType=recvType ? recvType.toUpperCase() : 'HTML'; //向形参中传递的文件类型 aj.targetUrl=''; aj.sendString=''; aj.resu

  • php编写一个简单的路由类 2014-06-10

    php编写一个简单的路由类,需要的朋友可以参考下. 类代码: <?php class Router { public function getRouter($types = 1) { if ( isset($_SERVER['PATH_INFO']) ) { $query_string = substr(str_replace(array('.html','.htm', '.asp', '//'), '',$_SERVER['PATH_INFO']),1); } else { $query_st

  • 奉献出一个封装的curl函数 便于调用(抓数据专用) 2014-06-27

    这个函数就是封装了curl函数的常用步骤,方便大家抓数据,小偷程序也是用类似的代码,需要的朋友可以参考下 奉献出一个封装的curl函数,便于调用 function curl($url, $ifpost = 0, $datafields = '', $cookiefile = '', $v = false) { $header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml,

  • Lua教程(六):绑定一个简单的C++类 2014-07-19

    这篇文章主要介绍了Lua教程(六):绑定一个简单的C++类,本文是最后一篇C/C++与Lua交互的教程,其他教程请参阅本文下方的相关文章,需要的朋友可以参考下 本文是最后一篇C/C++与Lua交互的教程,在此之后,我们会结合Cocos2D-X来介绍Lua绑定.本文主要介绍如何绑定一个简单的C++类到Lua里面,并且提供Lua的面向对象访问方式. 绑定C++类 定义C++类 首先,我们定义一个Student类,它拥有名字(字符串类型)和年龄(整型),并且提供一些getter和setter,最后还提

  • javascript Ajax 类实现代码 2014-09-09

    Ajax已经如日中天,针对Ajax的框架也比比皆是,这里还是献献丑,提供一份06年自己写的Ajax封装类. 与现在那些Ajax框架比较,优劣之处?看完再说吧: 1.Ajax.js /* AJAX v1.4 HJF 2009-7-5 */ function AjaxDO(){ this.HttpRequest = null; this.openMethod = null; //HTTP请求的方法,为Get.Post 或者Head this.openURL = null; //是目标URL.基于安全

  • C++封装远程注入类CreateRemoteThreadEx实例 2014-09-25

    这篇文章主要介绍了C++封装远程注入类CreateRemoteThreadEx实例,详细讲述了注入DLL到指定的地址空间以及从指定的地址空间卸载DLL的方法,需要的朋友可以参考下 本文实例讲述了C++封装远程注入类CreateRemoteThreadEx的方法,分享给大家供大家参考.具体方法如下: 首先,类初始化时传入要注入的DLL文件名 只使用两个函数 // 注入DLL到指定的地址空间 BOOL InjectModuleInto(DWORD dwProcessId); // 从指定的地址空间卸

  • Python实现一个简单的MySQL类 2015-01-07

    这篇文章主要介绍了Python实现一个简单的MySQL类,可实现基本的初始化连接及查询.删除等功能,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Python实现一个简单的MySQL类.分享给大家供大家参考. 具体实现方法如下: #!/usr/bin/env python # -*- coding:utf-8 -*- # Created on 2011-2-19 # @author: xiaoxiao import MySQLdb import sys __all__ = ['MyS