技术开发 频道

金蝶中间件张勇:JavaEE Without AJAX

张勇:
    大家下午好!

    给大家带来的主题叫做JavaEE Without AJAX,今天下午这个题目比较新颖,其实我觉得这个题目略有炒作之嫌,因为我们知道(英文)有一本非常著名的书,叫(英文),在这本书里面(英文)是介绍了(英文)在这个体系里面所给我们带来的一些价值和意义,但是更大的一部分篇幅是介绍(英文)的不足和缺陷,并且正是由于这样一本书导致了(英文)这样一个框架的诞生,那么今天我们所谈的JavaEE Without AJAX又是讲什么内容呢?下面我们来进入我们的主题,首先我们来看第一个话题,AJAX为什么这样红?为什么在我们现在web开发的这个领域里面这样一个,其实这个概念我们都知道,本身并没有太深的技术含量,很多人说这是一个新瓶装旧酒的一个技术,为什么在这样一个环境下AJAX可以占据我们这样一个主流的地位呢?有很多的原因,第一个原因是说由于有一个好听的名字,或者是由于Goole这样一家伟大的公司,由于它的引导,我们有电子邮件,有(英文)这样一些非常伟大的应用,由于这些应用用了AJAX的技术,导致我们对它有这样一个非常高的地位,事实上我们认为AJAX为什么这样的红?

    根本原因是在于它改变了人们对传统的web应用不佳的印象,它能够让我们的web应用能够有更好的这样一个人机体验,所以说这是我们认为AJAX为什么这样红的一个根本性的原因,虽然说它有这样一个主流的地位,但是我们也同时看到了它的一些缺陷和不足,比如说它对搜索引擎支持不好,我们现在做网站的应用系统,我们总是希望能够让搜索引擎更好的对我们网站内容进行一个检索,但是如果你基于AJAX技术它对于搜索引擎的支持是不佳的,所以它干掉了(英文)和(英文)这些按纽,我们目前已经认为了(英文)和(英文)是人们对浏览器直观的印象,如果你去AJAX去开发,这些(英文)是不起作用的,因为原本它默认的行为,我们还要通过程序去实现,这无疑是增加了我们开发的复杂度,同样的AJAX是基于(英文)的,它无法避免带来的(英文)的一些缺陷和不足我们开发(英文)应用,换浏览器是一场恶梦,相信我们在做(英文)应用的技术同仁肯定会有这样一些印象,但是我们最终认为AJAX一个最根本性的不足就是开发和维护成本过高,没有一种方便的方法和手段让我们能够快速的开发出来AJAX(英文)的引进和应用,首先我们看这个(英文),这个(英文)未必是正确的,但是包括我们很多GSF,我们的爱好者对它提出一些置疑,但是我认为(英文),这句话会代表了很多咱们(英文)开发人员的心声,我们喜欢Java,但是我们未必喜欢Java(英文),我们今天的标题叫做JavaEE Without AJAX,但事实上在Java这个社区里面我们还是需要AJAX来提升用户体验的,但是我们不喜欢AJAX目前的开发模式,那么怎么办?

    谁来拯救AJAX呢?我们给大家介绍的是(英文)主导的一个开源社区,他所主推的这样一个Java(英文)技术,在谈(英文)之前,我们首先把这样一个JSF,我们可以看到这是一个客户端和一个服务器,在JSF的技术下,首先客户会发出这样一个请求,这个请求在到达服务器以后,服务器要经过很多这样一个步骤,这些步骤就是JSF这个规范所定义的几个生命周期,包括(英文)、(英文)处理这样一个约束和验证,最终在(英文),然后再调用(英文),最终由服务器产生一个(英文),这个(英文)是JSF中的一个概念,就是渲染器,由不同的(英文)它可以实现设备无关性,最终是生成了这样一个基于(英文),我们现在来观察的就是其中的两部分,一个是(英文),那么在传统的这样一种交互模式下,或者说传统的JSF交互模式下,首先客户端产生这样一个(英文),基于(英文)或者是(英文),下面有一堆的参数,在下面服务器会产生(英文),我们注意观察服务器所产生的(英文)它几个显要的特性。

    我们可以看到它的类型是什么呢?是(英文),而返回的内容主体是一段非常标准的(英文),浏览器在接收到这样一个响应以后它的动作就非常简单了,我开始接收到这个(英文)表,再把我这个界面显示出来,这是常规的JSF实现和响应的过程,那么在(英文)JSF实现的情况下,这个请求和响应是怎样的呢?我们可以看一下,首先客户端或者说浏览器也是同样产生这样一个(英文),服务器端经过一系列的生命周期以后产生一个(英文),这时候我们需要注意观察,有几点不同,不同在什么地方呢?我们可以看到,客户端产生的请求是一个(英文),大家恍然大悟,这就是一个AJAX请求,它的内容类型也不再是(英文)了,而是(英文),反过来是一堆(英文)脚本,再看内容主体是把页面上的某一个空件的值变成新的值,那么浏览器在拿到这样一个内容主体以后,它不再需要把整个页面再重新渲染一遍,他只需要执行(英文)脚本,说我这个值发生了变化,变成了那个值,那么通过这样一种交互模式,我们所能够获得的好处是怎样的呢?我们获得了是基于AJAX这样一个请求,应答,以及页面空件的更新。

    那么同样我们可以观察到中间的这种数据传输量是明显减少的,以前是一堆页面的传递,现在只需要传递一些简单的(英文)脚本,尤其在需要传递图片诸如此类的情况下,这个数据传输量减少是非常大的,我们可以的一个更好的用户体验,整个系统保持一种敏捷、高效的状况。最关键的是我们没有做过AJAX的开发,但是我们这个应用就是自然而然的(英文)的这样一个应用系统,这也是我们为什么谈到叫做JavaEE Without AJAX的这样一个原因,最终我们的结论,简单的一个结论,怎么说呢?JavaEE是需要AJAX的这样一种技术,是需要这样一种技术来提升我们的用户体验的,但是我们并不需要这种传统的复杂的开发成本非常高的这样一种AJAX的开发模式,我们如果通过(英文)这样一个(英文)引擎,我们不再需要知道什么是AJAX,而我们的应用系统是自然而然的(英文)的系统,最终我们的一个结论就是JavaEE(英文)AJAX,最后我给大家做一个非常简单的演示,我这里面启动的是(英文)5.0,我们这里面有一个CAR  DEMO,它是Sun在官方网站上为了推广JSF这个示例,我们把它跑到(英文)5.0这个服务器上,提起金碟大家各位都知道这家公司,但是提起金碟中间件的大家知道的会非常少的,我们从2000年开始做(英文)服务器,我们最新的(英文)5.0,刚刚在全球第四家获得了(英文)兼容性认证。

    我们首先来看一下,我们现在把这个CAR  DEMO,基于(英文)的应用,我们把它放在(英文)5.0上运行一下,看看是怎样的一种效果,首先选择一种语言,我们假如选英语,在这里面你选车型,针对不同的车型,当你选择的话是需要这些数值,以及相应的参数是发生变化的,你可以注意观察这样一个标签页,你会发现当你选择的时候滚动条是回去的,说明整个页面是刷新的,那么下面由于我把它跑在的是(英文)5.0上面,我只需要更改一个参数,这个参数是(英文),叫做(英文)里面,我把这个参数给它改一下,这有一个(英文),这个(英文)是什么呢?是(英文),那么我它换成AJAX,我存一下盘,我把应用重新启动一下,我们现在重新再访问一下刚才所看到的这个CAR  DEMO,选择一种语言,英语,选择一种车,我们对这个车型进行选择和配置,大家可以看到什么?你看这个值变化了,再看一下值依然是发生变化的,但是整个页面呢?没有刷新,这个应用是什么应用呢?这不就是我们所追求的基于AJAX的这样一种应用吗?但是我们的系统是标准的Sun的一个(英文)的示例,这个作者在做这个CAR  DEMO的时候,我从来没有想过要做成AJAX的,如果我把它拿到(英文)5.0上,或者说拿到(英文)这个(英文)之上,我只要更改一个配置参数,这个应用就变成(英文)的应用了,(英文)是什么呢?(英文)引擎拿出来,把它开源了,成立一个组织,叫做OperaMasks,中文就是脸谱,我们认为把这样一种创新贡献出来,咱们业界所有同仁共同发展它,并基于JSF有一些成功案例,我们可以用它来构造一些符合工业质量和要求的这样一些(英文)应用。

主持人:
    感谢张勇先生精彩的演讲和演示。

0
相关文章