`
yhw
  • 浏览: 3171 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

AJAX Starter Edition

    博客分类:
  • ajax
阅读更多

if(/msie/i.test(navigator.userAgent)) {
    window.XMLHttpRequest=function(){
        var msxmls=['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','MICROSOFT.XMLHTTP.1.0','MICROSOFT.XMLHTTP.1','MICROSOFT.XMLHTTP'];
        for(var i=0;i<msxmls.length;i++){
            try{
                return new ActiveXObject(msxmls[i]);
            } catch(e){}
        }
        return null;
    };
}
Object.extend = function(destination, source) {
    for (var property in source)
        destination[property] = source[property];
    return destination;
};
var ajax = {
    send : function(arg){
        var req = new XMLHttpRequest();
        if(req==null){
            alert("The Browser don't support xmlhttp");
            return;    
        }
        if(req.overrideMimeTyp)req.overrideMimeType('text/xml');
        var dataType = {text:'responseText',xml:'responseXML',json:'responseText'};
        var options = {
            url : '',
            type : 'POST',
            async : true,
            data : null,
            timeout : 0,
            contentType : 'application/x-www-form-urlencoded',
            encoding : 'UTF-8',
            dataType : 'text',
            State : ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'],
            ErrorState :{"400": "Bad Request syntax error occurred",
                "404": "Can not find the location of the designated resources",
                "405": "type Not Allowed Request methods(GET、POST、HEAD、DELETE、PUT、TRACE and so on)Designation of resources don't apply"},
            create : function(){},
            success : function(){},
            doing : function(){},//From start to finish,-4 State
            timeout: function(){},
            error : function(status,ErrorMsg,eMsg){alert("Status: "+status+"\nErrors: "+ErrorMsg+"\n        "+eMsg);}
        }
        Object.extend(options,arg||{});
        options.url += ((options.url.indexOf("?")>0)?"&":"?")+"randnum=" + Math.random();
        options.type = options.type.toUpperCase();
        if(options.async){
            options.doing(0,options.State[0]);
            req.onreadystatechange=function(){
                var _state = req.readyState;
                options.doing(_state,options.State[_state]);
                switch(_state){
                    case 0:
                        options.create(_state,options.State[_state]);
                        break;
                    case 4:
                        if(req.status == 200)
                            options.success(options.dataType == "json" ? eval("("+req[dataType[options.dataType]]+")") : req[dataType[options.dataType]],_state,options.State[_state]);
                        else if( req.status >200 )
                            options.error(req.status,options.ErrorState[req.status],"");
                        req.onreadystatechange = function(){};
                        req = null;
                        break;
                }
            };
        }
        try{
            req.open(options.type, options.url, options.async);
            if(options.type=="POST")
                req.setRequestHeader('Content-Type', options.contentType+'; charset='+options.encoding);
            if(options.async && options.timeout>0){
                setTimeout(function(){
                    try{
                        if(req!=null && req.readyState!=4)  options.timeout();req.abort();req=null;
                    }
                    catch(e){}},options.timeout);
            }
            req.send(options.data);
            //Not as long as status=200,There can be called an error
            if(!options.async){
                options.success(req[dataType[options.dataType]]);
                req = null;
            }
        }
        catch(e){
            try{options.error(req.status,options.ErrorState[req.status],e);}
            catch(e){options.error(0,"",e);}
            finally{req.abort(); req=null;}
        }
    }
}

/////////////////////////////////////////////////////

        ajax.send({
            type: "POST", 
            url: "/aspx/common.aspx", 
            data: "action=keys&c=1&o="+o.id+"&nsid="+XmlPage.User()+"&q=" + escape(o.title) + "&s="+XmlPage.ParentId+"&p="+escape(o.p),
            dataType : "xml" ,
            async : true ,
            doing : function(req){
                if(takeinfo) takeinfo.innerHTML = XmlPage.Taking;
            },
            error: function(req){
                if(takeinfo) takeinfo.innerHTML = XmlPage.Takerror;
            },
            success: function(req){
                if(takeinfo) takeinfo.innerHTML = XmlPage.TakeOk;
                takesate.innerHTML = "<font color='red'>Subscribers have been</font>";
                XmlPage.DateSource = LoadXml("/js/subscribe.xml");
                XmlPage.init();
                setTimeout(function(){XmlPage.Show(XmlPage.CurrPage);},1000);
            }
        });

 

分享到:
评论

相关推荐

    dynatrace-AJAX-edition软件

    《dynatrace-AJAX-edition软件:前端性能优化的利器》 在现代Web开发中,前端性能已经成为衡量用户体验和网站质量的重要指标。为了更好地优化前端性能,开发者们需要借助专业工具进行深入分析和测试。这里我们要...

    dynatrace-AJAX-edition-4.2.0.1528.zip

    《 Dynatrace AJAX Edition 4.2.0.1528:深入解析与应用实践》 Dynatrace AJAX Edition 4.2.0.1528 是一款专为优化基于AJAX(Asynchronous JavaScript and XML)技术的Web应用程序性能而设计的强大工具。这个版本的...

    dynatrace-AJAX-edition

    Dynatrace AJAX Edition是一款专为Internet Explorer平台设计的JavaScript性能分析工具,它为开发者和性能测试人员提供了深入洞察网页应用性能的能力。这个工具的核心功能在于帮助用户理解和优化AJAX(Asynchronous ...

    Professional Ajax, 2nd Edition.pdf

    《Professional Ajax, 2nd Edition》是一本深入探讨Ajax技术的专业书籍,由三位作者Nicholas C. Zakas、Jeremy McPeak和Joe Fawcett共同撰写。本书在2007年由Wiley Publishing, Inc.出版,是针对网站开发、设计以及...

    dynatrace-AJAX-edition-3.4.0.985

    dynatrace 页面前端渲染速度监控,支持IE8、9。也可查看网络、服务器对单个URL的响应速度。

    dynatrace-AJAX-edition-3.7.0.1155

    DynaTrace AJAX是一个运行在IE浏览器下的免费页面性能分析工具,它可以支持主流的IE6、IE7、IE8浏览器。这款工具正是DynaTrace为进入前端性能分析领域而发布的。您可以利用它来分析页面渲染时间、DOM方法执行时间,...

    Wrox Professional Ajax 2Nd Edition

    根据提供的信息,《Wrox Professional Ajax 2nd Edition》是一本深入探讨Ajax技术的专业书籍,由Nicholas C. Zakas、Jeremy McPeak 和 Joe Fawcett三位作者共同编写,并于2007年由Wiley Publishing出版。下面将详细...

    Ajax Starter Kit

    Ajax Starter Kit – Phil Ballard. Everything you need to start learning Ajax today! Ajax Programmer’s Toolkit with all the technologies you need to set up an Ajax development and testing environment...

    dynatrace-AJAX-edition-4.1.0.1466.msi

    前端性能测试利器,可以全方面分析网站前端代码的优劣性

    dynatrace-AJAX-edition-4.2.0.1528 分卷1

    IE下的前端性能分析工具,由于上传60M限制,分成2个压缩卷上传

    dynatrace-AJAX-edition-4.5.0.2031.msi

    dynatrace-AJAX-edition-4.5.0.2031.msi 目前最好用的前端性能分析工作

    dynatrace-AJAX-edition-4.4.0.1880.part2.rar

    dynaTrace Ajax:前端性能分析利器

    Wrox.Professional.Ajax.2nd.Edition.Mar.2007.pdf

    《专业Ajax:第二版》是Wrox出版社于2007年出版的一本关于Ajax技术的权威指南。本书由三位作者合著,分别是Nicholas C. Zakas、Jeremy McPeak和Joe Fawcett,他们都是在Web开发领域有着丰富经验的专家。该书深入探讨...

    dynaTrace AJAX

    在【 dynatrace-AJAX-edition-4.5.0.2031.msi 】这个文件中,包含的是dynaTrace AJAX工具的安装程序,版本号为4.5.0.2031。安装此版本的工具,开发者可以获得上述功能,并且可以享受该版本特定的改进和修复。在使用...

    dynatrace-AJAX-edition-4.4.0.1880.part1

    dynaTrace Ajax:前端性能分析利器

    Wrox.Professional.Ajax.2nd.Edition

    《Wrox Professional Ajax 2nd Edition》是Ajax技术领域的一本权威著作,旨在深入解析Ajax在Web开发中的应用。这本书的第二版详细介绍了Ajax技术的最新发展和实践,为开发者提供了丰富的理论知识与实战技巧。 Ajax...

    Ajax--新手快车道.rar

    **Ajax——新手快车道** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的运用极大地提升了用户体验,因为它允许页面与服务器进行异步通信,...

    Ajax-gunbasic-js.zip

    Ajax-gunbasic-js.zip,gunbasic js是一个库,用于快速开发基于ajax的web应用程序,这些应用程序易于独立测试。编写ajax代码只需要一行客户端js和服务器中的实现。适用于快速成型和团队开发。,ajax代表异步javascript...

    英文原版-Head First Ajax 1st Edition

    Head First Ajax gives you an up-to-date perspective that lets you see exactly what you can do -- and has been done -- with Ajax. Using the unique and highly effective visual format that makes Head ...

Global site tag (gtag.js) - Google Analytics