共计 94 篇文章

Qomo 2.0 beta1 发布说明及新功能

注:有关本次发布的一些重要信息请参见:关于Qomo 2.0 beta1的发布 一、Qomolangma 2.0 Beta1 Qomo的上次发布是在5个月前,此次的beta1主要包含对框架、兼容层和Builder系统的更新。有关界面组件库、图形库的发布,大约要到beta2或beta3才会提供。 Beta1主要的更新包括: 修改了大量代码和builder工具,实现对IE5.0的完整兼容,兼容safari v2,部分兼容opera 对兼容层代码做了大量修改, 并调整了兼容层在system. ...

Qomolangma.V1.0的发布说明

一、Qomolangma 1.0 Final 一年以来,Qomo团队都在一种迷茫的、看起来没有方向的状态中工作。因为Qomo看起来缺乏必要的设计,以向每一个关心它的人解释以下的问题: Qomo到底是什么 Qomo有什么用 此前我已经说过,Qomo项目源出于另一个名为WEUI的商业项目。WEUI有着自己完整的架构和方向,由于需求决定设计,因此事实上WEUI的原始设计也是面向它原本的方向与需求的。我当然知道这样的需求目标和方向,但也同样知道:WEUI与Qomo有相似但不相同的方向。 所以,我无法把WEUI的架构搬到Qomo中去,也无法用WEUI的方式来解说Qomo的架构。我必须Qomo的前期工作中解决一个问题:如何让WEUI变成Qomo。 既然不能让一个旧架构为新目标服务, ...

Qomo项目中代码的一般性约定

一、变量声明的一般性方法 Qomo约定在全局空间进行变量声明时,应用var关键字来声明,而不应当省略(尽管语法上讲能这样做)。声明时的代码格式尽可能使用如下形式: var v1 = 1234; v2 = 'abcd'; 或为每行声明都保留var关键字,例如: var v1 = 1234; var v2 = 'abcd'; Qomo约定在函数内部声明局部变量进,使用var关键字时可以用如下省写形式: var v1 = 1234, // < ...

如何使用Qomo的Builder系统

1. Qomo的Builder系统 Qomo在Beta2之后,主要解决的一个问题就是Builder系统。在设计上,Qomo对Builder系统提出了非常严格(甚至是苛刻)的要求,其中包括: 使用Qomo自身的框架来实现 使用JavaScript来实现,而不要第三方的应用(例如.exe的压缩程序) 对既有的和将来的Qomo项目透明,无影响 深入到Qomo内核的、分层的、可分解的模块定制 编译的结果代码,与使用中的调试版本无差异 这些要求所主要表现的,就是Qomo的Builder可以定制,而且对使用者来说公开、透明。 由于JavaScript是解释执行的脚本, ...

Qomolangma框架库(三):处理池与处理机

一、框架库:处理池与处理机 严格地说,Pool被译成“池”即可,只是在Qomo的TPool类中,所有放在“池”中的对象都是处理机(Machine),因此这个TPool被称为“处理池”类。 Pool的出现早在WEUI的时代,其目的是处理同步的、缓存的XmlHttp对象。因此,Machine也就在事实上只实现了“THttpGetMachine”。这个HttpGetMachine也能处理POST类型的HTTP请求,所以,严格地说,它应该名为“THttpMachine” ...

Qomo V1.0 final 发布~

终于写完了 V1.0 的全部代码~~也顺道整理了整个框架~终于可以发布final了。 ^.^ 正式版中的重大改进,包括: 新的命名空间和路径算法,终于可以声称支持“命名空间”了 完整的builder系统。支持连接(link)和压缩(compress)代码了 (体验版本的)组件系统及其系统 完整的性能分析和测试框架,载入器($import)的性能提高 在Qomo.js中, ...

再谈JavaScript时钟中的16ms精度问题.

上一篇BLOG中,通过测试我们发现 JavaScript的时钟是16ms的间隔. 对于IE来说,每次总会发生16ms的间隔;对于firefox来说,会存在0ms的间隔. 对于后者,我曾解释说:可能是Java使用了自己的时钟. 先说第二种情况,对于firefox中的js引擎,我尚未去看代码,因此我只说"可能",但后来hax来说,firefox的JS引擎仍是C写的,这才想起的确如此.所以这里先说,我前面关于firefox的问题的解释是错的. 再说16ms的问题. 我其实也怀疑,为什么是16ms,而不是其它的什么值呢? hax给了我很多信息.我这里来整理一下: ...

JavaScript时钟间隔的问题~

JavaScript中setTimeout()和setInterval()用于创建和管理时钟.但这个时钟的精度是多少,却没有什么资料来提及.在讨论具体的问题前,先说明一下setTimeout与setInterval在时钟间隔为0值的情况下的反应. 当用户置setTimeout(proc, 0)时 ,将让出CPU直到下一个时钟间隔再开始执行proc,而并非"在0ms后执行proc";当用户置setInterval(proc, 0)时,时钟不会被初始化. JavaScript要求至少以1ms为间隔创建时钟. 接下来,当interval值为1(或者其它很小的值)时,时钟将按一种"最小的" ...

Qomolangma框架库(二):时间线与时间处理器

一、框架库:时间线与时间处理器 几乎所有的动画特效都与时间线有关系。在一般的应用软件里,会提供一个固定间隔的时间线,设计人员则在时间线上描述指定的时间里会发生的事件。这些事件被连续起来,就成为了动画;而一组时间线合并起来,就成了动画场景。 Qomo里实现时间线的初衷,只是为了在绘制界面组件的效果时,提供一些用时间控制的效果。例如窗体关闭/隐藏时的卷入效果(以及在打开时的展开);又例如一个Outlook风格的纵向Bar在点击一个按钮时的展开。 在Windows32和vista风格的界面设计中,这些组件都具有一些特殊的动画效果。例如窗体弹出或控件的淡入淡出。这些动态效果其实都是在时间线的基础上来实现的。 但这些仍然只是单一组件,或一类组件的单一特效。这种情况下,只能算是“ ...

Qomolangma框架库(一):概述、工具、异常、调试与分析

一、概述:Qomolangma中的框架库(v0.1) 在UI层方面,Qomo一直没有足够的进展,因此Qomo在beta 1之前公布的代码看起来就象是一个语言实验工程,而不象是一个面向应用的项目。 其实Qomo的前身(WEUI)本身就是围绕UserInterface Library来提出的,因此WEUI的确有自己的UI层。此外,它也有完整的DB和Graphics层(及一个VML的实现)。但是Qomo对UI层提出的目标与WEUI并不一致,因此这直接导致了“Qomo需要一个新的UI库”的结果。 Qomo在beta 2中包含部分UI、DB层的代码,但是并不推荐将它归为Qomo的一个组成部分并应用。 ...

Qomolangma实现篇(九):Qomo中的模板系统

一、模板技术概要 模板技术由来以久。在C++中的模板(Template)是编译时技术,而在.NET CLR中用于取代该技术的范型(Generic)则是一种运行时技术。由于范型理论的出现,使范型编程成为一个新的语言课题。在.NET CLR中,范型编程就是一种用模板来实现代码重用的高效技术(类范型和方法范型)。 然而,模板技术的使用也带来了很多的问题。例如: 模板系统的出现,是为了解决了类型问题呢,还是只是解决代码重用的问题? 通过模板来生成可运行代码框架, ...

Qomolangma实现篇(八):Qomo中的AOP框架

一、Qomolangma中的AOP AOP(面向切面编程)有没有必要在JavaScript中实现,一直以来是个问题。滥用AOP的特性,将导致系统效率下降、性能不稳定等后果。因此在展开下面的讨论之前,我需要先提醒Qomoer:尽管我们拥有了强大的AOP框架,但如果你不足够了解它,那么还是慎用之。 前面在讲述Interface的时候提到,Qomo是鉴于AOP的需要,而为之提供了强大的Interface机制。但这并不是说用户需要定义很多接口,才能使用AOP。——Interface是在Qomo实现AOP中的“定制切面”时使用到的关键技术,而不是用户使用AOP时所必须的技术。 Qomo的AOP框架依赖于Qomo中提供的如下特性: 接口机制:Interface. ...

Qomolangma实现篇(七):Qomo的接口机制

一、Qomolangma中的接口(Interface.js) 在做AOP(面向切面编程)系统之前,我一直在想:有什么必要在JavaScript中做“接口(Interface)”的机制。——当然,这也说明,你可能需要通过阅读迟些提供的、关于AOP框架的文档,才能理解如何使用Qomo中强大的接口机制。^.^ 接口是现代软件工程中的一种常用工具,它的出现使设计人员更多的关注于功能的“对外表现”,而非“内部实现”。在软件模型设计中,类图通常用于描述设计的细部,而接口则更常用于描述模块、层次间的交互关系。 ...

Qomolangma实现篇(六):Qomo的OOP框架的实现技术

注:本文讲述的是FT4的一个修正版本中的OOP实现,而非原始发布版本。 一、Qomolangma中类继承的基本架构 Qomo在Object.js中,通过实现Class(),封装了“类继承”体系的绝大部分细节。如果你仅是要使用Qomo,那么你只需要通过“实现篇(五)”去了解一些基本语法就可以了。但是如果你想了解一些更细节的内容,或者你想让自己具有控制Qomo框架的能力,那么你应该继续将这篇技术文档读下去。 ——尽管,这并不如你想象地那样容易。 Qomo的加入,使JavaScript具有了完整的“类继承”体系。类继承的出现, ...