• 自己编的一个精致的Ajax框架


    Posted on 2008-05-24 16:06 Yidon 阅读(56) 评论(0)  编辑 收藏

       不知道大家都是怎么使用Ajax技术的,现在Ajax框架类也不少。我都喜欢自己设计和编写代码,所以现成的Ajax框架我用的并不多,这类框架我就用过jQuery,我相信用过的人都知道它的强大,的确是一个非常好用的js类库,但是对它我总是觉得能少用就少用,能不用就不用,毕竟它功能太多了,体积自然就不小,而且我们常用到的功能可能都占不到它的十分之一,如果你像我一样,用jQuery只是为了使用它的Ajax框架的话,那么我建议你还是像我一样编个自己的框架吧。下面就是我编写的Ajax框架,代码不多,但我觉得对Ajax来说已经足够了,我做网站就差不多都用它。

    以下就是基本代码,具体用法和更多解析请到我的U-Live 博客(http://blog.u-live.cn/blog-21.aspx去查看,谢谢!

    var  ajax  =  function(){};

    ajax.CreateXMLHttp  
    =  function()  {
        
    if(window.XMLHttpRequest){
            
    return  new  XMLHttpRequest();
        }
      else  if(window.ActiveXObject){
                
    try{return  new  ActiveXObject("Microsoft.XMLHTTP");}
                
    catch(e){
                        
    try{return  new  ActiveXObject("Msxml2.XMLHTTP");}
                        
    catch(e){
                                alart(
    "XMLHttp  object  could  not  be  created.");
                                
    throw  new  Error("XMLHttp  object  could  not  be  created.");
                        }

                }

        }

    }


    ajax.Request  
    =  function(url,func,isxml,ispost,parameters)
    {
        
    var  xhr=this.CreateXMLHttp();
        
    if(IsUndefined(ispost))  ispost=null;
        
    if(ispost)
        
    {
                xhr.open(
    "POST",url,true);
                xhr.setRequestHeader(
    "Content-Type","application/x-www-form-urlencoded;");
        }

        
    else
                xhr.open(
    "GET",url,true);
        
    if(func){
            xhr.onreadystatechange
    =function(){
                
    if(xhr.readyState  ==  4){
                        
    if(httpSuccess(xhr))
                            func(isxml
    &&xhr.responseXML?xhr.responseXML:xhr.responseText)
                        
    else
                                alert(
    "请求页面发生错误");
                }

            }

        }

        xhr.setRequestHeader(
    "X-Requested-With",  "XMLHttpRequest");
            
    if(!IsUndefined(parameters))
                    xhr.send(parameters);
            
    else
                xhr.send(
    null)
    }

    /*用Get方式提交数据*/
    ajax.Get  
    =  function(url,func)
    {
            
    this.Request(url,func,false,false);
    }

    /*用Post方式提交数据*/
    ajax.Post  
    =  function(url,func,parameters)
    {
            
    this.Request(url,func,false,true,parameters);
    }

  • 相关阅读:
    [Codeforces 1214A]Optimal Currency Exchange(贪心)
    [Codeforces 1214D]Treasure Island(dfs)
    [BZOJ 3512]DZY Loves Math IV(杜教筛)
    [BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛)
    [BZOJ 2154]Crash的数字表格(莫比乌斯反演)
    【莫比乌斯反演+分块】BZOJ1101-[POI2007]Zap
    【状态压缩DP】BZOJ1087-[SCOI2005]互不侵犯King
    【概率DP】BZOJ4318-OSU!
    【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】
    【莫比乌斯反演】HDU1695_GCD
  • 原文地址:https://www.cnblogs.com/smallfa/p/1206748.html
Copyright © 2020-2023  润新知