基于HTML的AIR不支持中文输入

备受期待的adobe AIR终于发布1.0版本。我迫不及待的下载下来并配置好开发环境,开始测试编写一些小AIR程序。有一些好消息和一些坏消息:
好消息是AIR上的javascript可以跨域读取数据,并能访问本地的sqLite数据库以及文件系统(更详细的就不多说了)这意味着开发者可以很轻松的做一个CS应用,而不用担心数据读取和存储的问题。
坏消息是基于HTML创建的AIR仍然不支持中文输入,而且还没有任何将要支持的消息。

这个问题应该追朔到AIR的HTML解释引擎webKit,这款被adobe最终选中的开源HTML解释引擎是不支持中文输入的,甚至连中文显示也是开始支持不久,而且字体效果也和ie,firefox有差距。当然,adobe选中它的原因是因为它足够小,速度快等。但是对国内的开发者来说,可能必须长期面对HTML-based AIR不支持中文输入的现实。因为苹果的safari(同样采用webKit作为内核)不支持中文输入已经不是新闻了。
Read more »

javascript面向对象编程(四)

继承是面向对象语言中的一个重要概念,现在我们来探讨一下继承。在网上搜一下javascript继承,可以得到无数关于javascript继承的文章。这些文章可能使用了很多让人眼花缭乱的技巧。但是,大多数情况下,其核心思想只有两种:利用prototype来实现继承(prototype继承)和利用复制对象方法来实现继承(class继承?听过的说法,不知是否准确)。先了解下这两种继承是如何实现的,以及它们的区别。
Read more »

javascript面向对象编程(三)

[Interface,Class.implement 接口及实现]
接口规定了一些方法,如果一个类实现了接口所定义的所有方法,就叫做实现了这个接口。诚然,javascript来模拟接口会带来一些效率上的损失,但是在大型项目特别是团队开发的时候,接口将带来很大的方便。使项目代码更加规范,更方便地查找错误信息。很多设计模式,像工厂模式、合成模式、装饰模式、命令模式等都依赖于接口来实现。
javascript模拟接口包括两部分:接口的模拟和接口实现的模拟。
Read more »

javascript面向对象编程(二)

[javascript模拟传统OOP]
javascript是一种非常灵活的语言,它的灵活度足以让你模拟传统的OOP。主流的javascript框架大都实现了这个功能,这里给出我的实现办法:OOP.js(2k)。
Read more »

javascript面向对象编程(一)

javascript曾一度被认为是玩具型的语言,因为它太容易上手,而且,javascript曾一度担任为web站点“打杂”的职责。直到Ajax的兴起,这个在幕后默默无闻多年的语言才崭露头角,它的灵活性赋予了开发者无穷的想象力。javascript不提供传统的OOP方式,但是仍然可以轻松的实现OOP。
Read more »

不建议使用jquery的情况

jquery作为一款高质量的框架被大多web开发者所推崇。jquery也的确是一款伟大的产品,在实际开发中明显提高了效率。但是任何产品并不是完美的,或者说不总是完美的。本文旨在讨论不适合用jquery的情况,并非标新立异,请看我列举的情况:

javascript初学者
初学者很容易被jquery所提供的各种效果所吸引,平时焦头烂额都写不出的效果,被jquery几行代码轻松实现了。初学者如果在这个时候就用jquery来开发,打击自己的信心还算小事,更严重的是,jquery的理念”write less,do more”。但是,一个初学者如何能提高自己的水平?一个重要的方法就是多写吧!而这和jquery的理念是相矛盾的。更需要指出的是,jquery把javascript中比较重要的DOM和浏览器差异都解决了,使用者不需要为这些事情编写兼容性代码,这虽然提高了效率,但却不利于初学者培养扎实的javascript功底。
Read more »