现在ajax实现太过火了,什么都向上面靠。其实早在2000前以前,WEB开发人员就已经在用Frame/Frameset来实现远程数据的获取。后来IE成为事实上的B端标准之后,IFrame就成了做远程数据获取的“标准手段”了。——例如M$就用这种方法来做MSDN网站左侧的那个“巨大的树”。

在ajax出现之前,这一系列的技术被称为“RPC(Remote Procedure Call)”,象XMLRPC、HTTPRPC以及PHPRPC这些开源项目都是有的。PRC的一个问题,是必须实现一个S端,与WEB端的代码约定一个描述过程名(ProcedureName)和参数表的细节的接口。这其中,我比较欣赏的是一个名为“JSRS(javascript remote scripting)”的项目,它在S端有PHP/ASP等多种语言的实现。

现在也还有在RPC这个路线上延伸的技术尝试。例如有人用css或者script标签来替代IFrame实现RPC。

RPC时代之后,就是ajax的时代了。ajax本意是“Asynchronous JavaScript and XML”。从本意上来说,它只是一种技术架构。是B/S两端交互数据的一种技术方法。但由于ajax主张使用XMLHttpRequest来替代RPC技术中的IFrame。这使得在浏览器上能有“无界面刷新”的良好用户体验。再加上现在火热的google成功地实现了“商业品质的应用”。因此ajax技术应用变得非常广泛。——但仅以跨浏览器特性而言,(现在的)IFrame的兼容性也极佳。

由于ajax以xml作为传输层中表达数据的规范,因此它有良好的多语言编码基础,也能表达很复杂的数据结构。这也是传统的RPC方式所不能比拟的。

除去这些特性,ajax(的本意)就只是一种技术手段了。

然而现在的ajax狂热者们把ajax的应用推动另一层“境界”。由于ajax使用xml,因此可以在S端将对象序列化为XML数据;而在B端,由于javascript是一种“有良好的逻辑处理能力”的“基于对象的语言”,因此可以用将XML解释成客户端对象。——从外在的表现上来讲,ajax实现了“将S端的对象推送到B端”的能力。

这是目前ajax技术的主要发展方向之一。“如何在S端和B端用同样的方式‘表达’和‘理解’对象”,以及“让对象的可执行能力被序列化,并推动到B端”是ajax面临的问题。而第一层障碍,就是JavaScript自身对“面向对象”支持的不完整,因此无法表达一些S端对象的特征。

——例如如果S端是.NET,它的对象A有一个具有读写器(getter/setter)的特性,那么对象被序列化并传到B端的时候,JavaScript如何理解对象A中的读写器呢?所以ajax现在都是与一个“实现了更丰富的OOP特性的javascript”绑在一起的。

我想大家应该看到了问题之所在了。“实现更丰富的OOP特性”与“ajax(异步的JS与XML)”有什么关系呢?ajax提出了一个语言级别的需求,然后有一些架构/项目去实现了这些语言特性,再绑在ajax上。ajax就这样越做越大。现在的ajax,已经变成“语言特性的实现+编程框架+技术”,而不是ajax技术本身了。

Qomo并不去追究这种技术的演化与变形。Qomo关注于一些“语言特性的实现”,也关注于一些“编程框架”的实现。在这两种实现的基础上,Qomo提供了一个轻量的ajax实现技术的框架,也提供了一套(相对于FCL/VCL)轻量级的Component Library。

这里既然提到了Qomo的特性,那么我就将我在sourceforge上申请create project的描述转过来。大家可以自己来比较分析:

Qomo OpenProject is a True and Full OOP framework and UI Library.

{ note:  # implemented,  + implementing, * planning, - tring }

include features of OOP:
 # inhreited by class
 # attribute getter/setter
 # type system of object
 # abstract and abstract exception
 # mutilcast event
 + interface in javascript
 # namespace system
 # package/unit import
 # tiny ajax architecture
 + SOA Architecture
 * template programming
 - more...

include features of UI:
 # tidy component framework
 # graphics abstract level and a VML implement
 # database abstract level and a ArrayDB/FileDB implement
 # html element controller and some control component
 # bar, menu, window, etc. in virsual component library.
 * more component, mount a tidy(very very) FCL or VCL.
 - more ...

other features:
 # some utils class.
 # auto class inhnert chart scan and generable
 # document generable tool (C# source)
 # testing and profing tools (JavaScript Source)
 - OOP Core and UI can debugging and designing in VS.NET IDE.
 - more ...

the project extracted from a enterprise project. free and open source for all JavaScript fans, and hope anybody join/impulse the project.

转载于:https://www.cnblogs.com/java0818/archive/2006/01/11/2144583.html

关于Qomo于ajax的异同~相关推荐

  1. Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

    阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...

  2. 使用Ajax同步请求增加页面等待提示

    使用Ajax同步请求增加页面等待提示 最近在做项目时,有一个需求是批量打印好多个合同,使用AJAX向后台传送数据,等待后台执行后,需要把生成之后的文件地址传送过来. 后台的处理时间比较长,根据合同的多 ...

  3. Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同:

    Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同: 1. 相同点: a) 都是使用异步提交的方式: b) 默认都是使用POST方式来提交数据 ...

  4. ajax调用ashx的方法,jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是&q ...

  5. ie和firefox操作table对象的异同

    2019独角兽企业重金招聘Python工程师标准>>> ie和firefox下操作table对象的异同[测试浏览器版本:ie为8,9,firefox为2.0] 1)在ie下,tabl ...

  6. JSON和JSONP【JS+AJAX跨域原理和实现】

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  7. Ajax跨域提交JSON和JSONP

    可以直接使用$.getJSON()方法实现跨域请求,参数中必须加上callback,如: var jsonpUrl = 'http://www.test.com/index.php?c=Api_Ord ...

  8. 从基础开始:Qomo OpenProject中的一些关键词

    ================================================================================ Qomolangma penProje ...

  9. ajax div 赋值重新渲染_优化向:单页应用多路由预渲染指南

    前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用.在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本, ...

最新文章

  1. 尘埃落定!苹果 10 亿美元入局 5G,Intel 挥别 9 年基带业务
  2. 华为鸿蒙osbeta多场景展示,华为发布鸿蒙系统:全场景分布式OS
  3. python创建txt文件
  4. 分布式文件系统研究-fastDSF文件上传和下载流程
  5. javascript-操作符
  6. J2EE数据库后台开发步骤(附HQL使用教程)
  7. 英语学习笔记2019-9-29
  8. sql server累计求和函数_窗口函数 以及 储存过程 create procedure
  9. Tex, LaTex概念及实例
  10. Python 开始吧
  11. 安装了Python2.X和Python3.X后Python2.X IDLE打不开解决办法总结
  12. 没有IOMMU的DMA操作
  13. python随手记自动记账_简化记账——我的“随手记”
  14. DBSCAN聚类算法+demo
  15. python画流程_使用Graphviz快速绘制流程图
  16. R plot图片背景设置为透明_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...
  17. Nanjing GDG Meetup 8月线下活动
  18. 【NOIP2015模拟】终章-剑之魂
  19. 【转载】Excel操作 Microsoft.Office.Interop.Excel.dll的使用
  20. STM32硬件I2C与软件模拟I2C超详解

热门文章

  1. ifconfig没有命令 kali_新装的Linux系统没有ifconfig命令?教你一键找回
  2. c语言对10求余不为7,【PTA | 基础编程题目集】7-12 两个数的简单计算器 (10分)
  3. 电脑键盘数字键失灵_C4D/3dmax/MaYa三维设计——高档机械键盘推荐·红轴(200元左右预算)...
  4. 计算机专业活动简报,计算机系辩论赛活动简报
  5. 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期
  6. apply筛选 pandas_Pandas中第二好用的函数 | 优雅的apply
  7. 产生任意区间内的均匀分布的随机整数序列
  8. Radio Button详细用法
  9. 记录一下增加标定评价标准的过程
  10. Java与Excel的交互!-