AJAX 开发的两种不同的方法

ajax

    最近几年Ajax应用程序开发出现了两种截然不同的方法,每一种方法都对以前的结构模型进行扩展。由于两种方法性质看起来是不同的,所以在实际应用程序的开发中应选择其中一种。

    当我们第一次听到Ajax这个术语的时候,我们的第一反应可能就是其较高的Web页面交互性。至少在JavaScript中的Web应用程序部分必要的代码提供交互性,虽然在Ajax应用程序意义方面都有一致的意见,但对于开发者如何与JavaScript进行交互或者如何在客户端与服务器之间分配显示逻辑有一些分歧。

    最近几个月,在Artima中报道了几个Java中心胖客户端框架,目的在于完全的隐藏开发者与JavaScript进行交互。这些框架将JavaScript集成到了JSF组件中,从而作为一个工具来处理JavaScript,其中的细节对开发者来说是隐藏的。利用JSF服务器端表现模型的优势,基于Ajax的JSF在客户端呈现出组件的状态。

    相反,Ajax在个别的客户端组件工具包中有优势,像Dojo或者 Prototype不仅将JavaScript呈现给用户,而且对开发者来说开发页面类型的应用程序更加容易。例如Dojo工具包提供许多API,这些API模拟J2SE API的重要部分,像收集和验证器。另外UI工具,这样的应用程序将不仅起显示逻辑的作用,甚至一些在客户端上业务逻辑,这些业务逻辑将会使用JavaScript来进行编码。与服务端进行交互将会被限制在这样的情况,即客户端应用程序必须与外部的资源进行交互,例如,提取数据到客户端或者保存用户的变化到数据中去。

    因为基于Ajax的JSF方法执行在服务器端的展现层并且将Ajax的特性融进到组件中去,这看起来像瘦客户端的一个扩展,并且是传统的Web应用程序的直接派生,这种方法的细微的共同点是Sun Ray瘦客户端设备,这种瘦客户端设备在服务器端显示桌面图片,客户端处理至多一个专门的显示。第二种方法是一个客户端-服务器的扩展,以至于在客户端和服务器之间显示应用程序的逻辑。在Ajax中,客户端是一个可编程的Web浏览器。

    这两种犯法都是建立在良好的实践基础上的,在应用程序开发中是不同的体系,瘦客户端涉及到在浏览器中JavaScript执行的不兼容性,他们很少涉及到是否瘦客户端模型是首选的即使所有的浏览器能够很好的显示JavaScript.

    然而,JavaScript在开发逻辑方面仍然是比较困难的,在一个新的版本, EcmaScript 4,提供了一个完全的面向对象的语言,因为它是相当标准的,浏览器执行将还算是兼容。另外客户端类库也已经掩饰了浏览器的大部分不兼容性。

    客户端支持者认为他们的方法能够更好的使用本地计算机资源,这样也导致在应用程序中能取代传统的桌面应用程序。即使没有一个持久的网络连接。

    有经验的认为每一个方法都有其利弊,如果你开发一个全新的胖客户端应用程序,就不得不选择或者是瘦客户端或者是客户端-服务器模型。

时间: 2024-11-08 21:16:16

AJAX 开发的两种不同的方法的相关文章

ASP两种调试程序的方法

程序 大家在调试一个程序时,有时候可能这个程序很长,多到成百上千行的代码,如果你的程序写的又零乱不堪,到了这种时候通常都不知道自己写了些什么,有些人还比较懒,像我,连个注释都不写,但是我从来没有被我的程序搞晕过,一般来说,不管你的程序是不是面向对像的开发模式,在局部的程序代码里,你的程序还是结构式的,如果你没有把一个模块分成几个小模块去做,而是几百行甚至上千行的代码全在一个模块里,那么一但出了问题,你恐怕哭都来不及,你不得不整天整天的找bug,就算你的程序运行上没有问题,而在设计上却有漏洞什么的

给大家介绍两种调试程序的方法,希望版主帖到精华区里!!!!!!

程序|精华 大家在调试一个程序时,有时候可能这个程序很长,多到成百上千行的代码,如果你的程序写的又零乱不堪,到了这种时候通常都不知道自己写了些什么,有些人还比较懒,像我,连个注释都不写,但是我从来没有被我的程序搞晕过,一般来说,不管你的程序是不是面向对像的开发模式,在局部的程序代码里,你的程序还是结构式的,如果你没有把一个模块分成几个小模块去做,而是几百行甚至上千行的代码全在一个模块里,那么一但出了问题,你恐怕哭都来不及,你不得不整天整天的找bug,就算你的程序运行上没有问题,而在设计上却有漏洞

介绍两种调试程序的方法

程序 大家在调试一个程序时,有时候可能这个程序很长,多到成百上千行的代码,如果你的程序写的又零乱不堪,到了这种时候通常都不知道自己写了些什么,有些人还比较懒,像我,连个注释都不写,但是我从来没有被我的程序搞晕过,一般来说,不管你的程序是不是面向对像的开发模式,在局部的程序代码里,你的程序还是结构式的,如果你没有把一个模块分成几个小模块去做,而是几百行甚至上千行的代码全在一个模块里,那么一但出了问题,你恐怕哭都来不及,你不得不整天整天的找bug,就算你的程序运行上没有问题,而在设计上却有漏洞什么的

Python 多线程开发的两种常用方式

目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用. 2.7版本之前python对线程的支持还不够完善,不能利用多核CPU,但是2.7版本的python中已经考虑改进这点,出现了multithreading  模块.threading模块里面主要是对一些线程的操作对象化,创建Thread的class.一般来说,使用线程有两种模式: A

SQL服务器内存有两种基本管理方法:动态分配和静态分配

动态|服务器|静态 SQL服务器内存有两种基本管理方法:动态分配和静态分配 控制程序可使用的内存数量.动态分配允许管理员声明一块内存的大小:考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放.静态分配则是创建一块固定的内存空间,提供给SQL Server使用--不再进行分配. 在默认情况下,SQL Server被设置成动态分配,分配给其正在运行的计算机内所有可用的物理内存.许多管理员注意到SQL Server内存随时间的流逝被逐渐消耗

用两种不同的方法来求实现数字字符串的最大,最小和平均值

字符串 用两种不同的方法来求实现数字字符串的最大,最小和平均值 <%@ LANGUAGE = "VBScript"ENABLESESSIONSTATE = False %><%'1. Selecting the numbers from a string:myString = "2, 4, 6, 8, 10, 12"aValues = Split(myString, ",", -1, 1)</P><P>F

ios开发中两个常见问题解决方法

  ios开发中两个常见问题解决方法来啦!大家知道苹果手机使用的是ios系统,而且用户量很庞大,所以ios开发也成了很热门的行业.下文小乐哥给大家带来ios开发中两个常见问题解决方法,希望给技术员在ios开发中起到帮助作用! ios开发中两个常见问题解决方法 一."Unknown class XXViewController in Interface Builder file."问题处理 最近在静态库中写了一个XXViewController类,然后在主工程的xib中,将xib的类指定

php两种无限分类方法实例

  这篇文章主要介绍了php两种无限分类方法实例,本文给出了递归方法和非递归方法实现的无限分类实例,需要的朋友可以参考下 一.递归方法 复制代码 代码如下: $items = array( array('id'=>1,'pid'=>0,'name'=>'一级11'), array('id'=>2,'pid'=>0,'name'=>'一级12'), array('id'=>3,'pid'=>1,'name'=>'二级21'), array('id'=&g

两种不同的方法实现js对checkbox进行全选和反选_javascript技巧

通过两种不同的方法实现用js来对checkbox进行全选和反选: 方法一: 1:js实现checkbox的 全选 功能: 复制代码 代码如下: function checkAll() { var code_Values = document.getElementsByTagName("input"); for(i = 0;i < code_Values.length;i++){ if(code_Values[i].type == "checkbox") { c