三步教你学会ajax开发应用

      ajax在很多程序员的眼里是一个很复杂或陌生的字眼,其实, AX并不复杂,自从AJAX技术出来后,天花乱坠的框架纷纷出台,搞得技术开发人员无从下手,baidu google里也有很多例子,大都是非常复杂。

  其实就web开发而言,AJAX技术只是一个配合,完全没有必要本末倒置,是一种页面优化的技术,也就是说,如何去优化我们的web页面才是AJAX的重头戏。下面我举个很简单的例子,可以满足大部分的业务需求。(当然,如果是很专业的页面要求,可以去参考那些复杂的框架)

  第一步:写一个后台的“接口”,这个可以用任何语言来实现,只要能返回http报文就可以了,我这里以webwork后台代码举个例子

public String hotWeek() throws Exception{
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/xml; charset=gb2312");
        PrintWriter out = response.getWriter();
        StringBuffer insertHotHtml = new StringBuffer();
        insertHotHtml.append(" <table width=171 border=0 align=center cellpadding=0
cellspacing=0>   ");
            insertHotHtml.append("<tr> ");
            insertHotHtml.append("<td width=23 height=25></td>  ");
            insertHotHtml.append("</tr> ");
        insertHotHtml.append("</table> ");
        out.print(insertHotHtml.toString());  //返回一个有表格的HTTP报文
        return null;
    }
  不用java的朋友根本不用管这些,只要记住,能返回一个HTTP报文,比如一个静态网页也可以。

  第二步 :在页面里加入下面这段javascript代码

var xmlHttp;
function createXMLHttpRequest(){
    if (window.ActiveXObject){
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
    }
}
function startAjaxRequest(method,async,actionUrl,data, invokeMethod){
    createXMLHttpRequest();
    xmlHttp.open(method, actionUrl, async);
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.send(data);
    function handleStateChange(){
        if(xmlHttp.readyState == 4){
            if(xmlHttp.status == 200){
                var nodeId = xmlHttp.responseText;
                if (nodeId=='noPermission'){
                    alert('你没有权限访问此操作!');
                }else if( (falseIndex = nodeId.indexOf("false||"))!= -1 ){
                   alert('操作失败,可能的原因为:' + nodeId.substring(
falseIndex+7, nodeId.length) + "!");
                }else if(nodeId=='false'){
                    alert('操作失败,请和管理员联系!');
                }else ...{
                    if (invokeMethod == undefined){
                        getResult(nodeId);
                    } else {
                        invokeMethod(nodeId);
                    }
                }
            }
        }
    }   
}
  我们要用的就是startAjaxRequest(method,async,actionUrl,data, invokeMethod) 这个方法,具体实现,也不可以不用理会,对于IE和firefox都可以兼容,method 要么是GET,要么是POST,async我们一般都设置为true就可以了,data用来传数据给后台,invokeMethod是指后台返回数据后,前台自动调用什么方法,如果为空,那么就默认调用 invokeMethod(nodeId)这个方法。

$(document).ready(function(){
            var actionUrl = "./provider!hotWeek.action";
            $('body').html("<strong>页面加载中...</strong>");
            startAjaxRequest("GET",true,actionUrl,'');
    });
这里我是用jQuery的,一个很好用的javascript框架。

"./provider!hotWeek.action" 就是我们获取HTTP报文的地址,大家完全可以用 比如 myTable.asp myTable.php只要返回的HTTP报文是符合XML规则的HTML语言就可以了。

  第三步:后台返回后的处理方法

  function getResult(nodeId){
        $('body').html(nodeId);
    }
总结起来,其实只要 startAjaxRequest("GET",true,actionUrl,'') 这么一个方法就可以去满足大部分AJAX的业务需求了,根本没有必要弄得那么复杂。

时间: 2024-08-01 22:31:30

三步教你学会ajax开发应用的相关文章

三步教你打造非主流照片效果

三步教你打造非主流照片,今天是用最简单的方法快速的用ps把照片制作成非主流效果照片的教程了. 好了来看制作教程吧.用减淡工具,如下图设置. 再对MM脸进行一下下,如上图.

深入浅出,三步教你如何认识真实的Alexa-Alexa世界排名

深入浅出,三步教你如何认识真实的Alexa 似乎网站优化,网站排名以及与之相关的课题永远是站长们关心的话题. 但三步认为,如何发现并留住访客并为之解决部分问题,才是站长应该关心的问题.可偏偏经常有站长问我alexa是什么,PR 又是什么?...... 我经常遇到"Alexa真的那么重要吗?"alexa真的那么权威吗?等 等类似的问题. 就群里昨天有朋友提到的关于alexa和PR 的问题,我写了这个小结.之所以将两者联系起来写,是因为我真实地发现了他们的关系. 一:什么是alexa? A

简单三步教你打造创意人物碎片感照片

  最近很多人问我人物碎片感的照片怎么做,方法有很多种,我选取了其中两种方法,一种是素材制作,一种是手工用图章制作.可以下载不同的素材,放在图片上制作飘零的感觉. 下面一起来看看吧. 原图. 做好的效果图. 下面看看,如何用简单几步做出如此的效果. 第一步,首先,通过百度搜词"碎片素材"找个相关素材.如同所示: 接着删除白色部分,只留飘零的树叶. 第二步:把素材置于图片之中. 接着,按住红线框按钮,将图层锁定. 第三步,使用图章工具,按住ALT键选点,然后涂到素材图层上,记住,要选择素

三步教你用PS打造创意人物碎片感照片

  原图. 做好的效果图. 下面看看,如何用简单几步做出如此的效果. 第一步,首先,通过百度搜词"碎片素材"找个相关素材.如同所示: 接着删除白色部分,只留飘零的树叶. 第二步:把素材置于图片之中. 接着,按住红线框按钮,将图层锁定. 第三步,使用图章工具,按住ALT键选点,然后涂到素材图层上,记住,要选择素材图层这个层. 最后,效果就形成啦.简单三步就可以打造创意人物碎片感图片了.是不是很有趣,赶紧试试吧.         注:更多精彩教程请关注三联photoshop教程栏目,三联P

三步教你如何识别出高质量的友情链接

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 高质量的友情链接对于提高网站排名有着至关重要作用,如果你的网站有跟新浪,搜狐这样的大网站首页做上友情链接,那么你的站在搜索引挚排名中肯定会得到相当高的权重,排名自然会更加的靠前.相反,如果我们跟低质量的网站做了友情链接,对提高网站的排名权重只会有反效果,例如我们跟一个被百度K的站做了友情链接,不仅不能提高自已网站排名严重的话甚至起反作用.所以

三步教你如何将网站打造成时效性网站

大家好,我是木子成舟.对于时效性的网站一直有所关注,因为一个时效性的网站会给搜索引擎很大的认可,特别是一些文章或者内容会给百度推荐到新闻源中.例如我们搜索"SEO"就会看到首页有一个位置是关于SEO新闻的网页,其中百度还会给3-5篇的文章推荐,这样的位置会吸引很多的搜索流量,即使主关键词SEO没有做到首页的网站也能够从"SEO"这个词上获取一定的流量.如下图中,中国网和京华网,中国电子商务研究中心的SEO文章都得到了百度的推荐.   搜索SEO得到的时效性网站 在百

三步教你搭建给黑白照片上色的神经网络 !(附代码)

深度学习云平台FloydHub最近在官方博客上发了一篇通过搭建神经网络,来给黑白照片上色的教程,在Twitter和Reddit论坛上都广受好评. FloydHub是个YC孵化的创业公司,号称要做深度学习领域的Heroku.它在GPU系统上预装了TensorFlow和很多其他的机器学习工具,用户可以按时长租用,训练自己的机器学习模型.免费版支持1个项目.每月20小时GPU时长.10G存储空间,用上色项目练个手足够了. 进入正题~ 以下内容编译自FloydHub官方博客: 我将分三个步骤展示如何打造

三分钟教你学会分析MaxCompute消费明细

很多用户经常被MaxCompute收费所困扰,比如执行了一条 select xxx from yyy 然后扣费1元 ,使用了机器学习后扣了1分钱,不知道如何查询到明细,也无法做优化. 接下来,我来教大家学习如何通过控制台消费功能查看你在MaxCompute(DataWorks/Studio)中每一条SQL/MR计算.存储.下载的消费明细. 场景1,查看昨天的收费情况 出账后,通过控制台消费明细来查看. 出账时间: 预付费出账单时间次日12点 后付费出账单时间是次日9点 step1 进入阿里云控制

私有云、公有云or混合云?三步教你如何选择最适云方案

前言: 本文将帮助您确定多云环境是否适合您的应用,并为您选择正确的云模型提供一些建议. 当你的企业在建立自己的云架构时,你需要考虑许多因素:需要什么功能?哪家供应商更可靠?私有云还是混合云?资源如何分配-- 今天,我们就来聊聊这个问题:如何管理好你的混合云? 公有云和私有云分别有着自己的优势,私有云对数据的安全性和服务质量进行最有效的把控,企业选择私有云是基于自身信息化建设的考虑,主要驱动力包括降低软硬件成本.实现应用系统快速部署.构建安全自主可控的基础架构环境等.在公有云上运行大数据工作负载比