写点什么

看一看 Buzzword 拼写检查的实现

  • 2007-12-18
  • 本文字数:1247 字

    阅读完需:约 4 分钟

Buzzword 在九月份的发布中对在线文字处理器加入了由 Adobe Flex 框架实现的拼写检查。Buzzword 团队成员 David Coletta 上星期在他的博客“深入Buzzword 拼写检查”中与我们分享了这部分的实现细节。

Buzzword 的核心拼写检查引擎是 Grant Skinner’s Spelling Plus Library (SPL) 。SPL 是一个完全采用 ActionScript 3(Flash / Flex 的编程语言)实现的商业产品。

Coletta 在这篇博客中谈到:

我们通过使用 Grant Skinner 卓越的 SPL 为我们的编辑者提供字典查询并提供建议。SPL 完全由 ActionScript 3 实现,它非常小而且快,并且能够在启动应用的时候在后台下载字典并解压,而客户不用等待这个过程。除了提供使拼写检查可以方便集成到 Flex 和 Flash 组件的高级接口外,SPL 还为单词查询和建议提供了低级的 API(我们正在使用它)。有一个完全在客户端实现的解决方案非常好,这样就可以用在我们支持的离线功能时候。

这个博文中,Coletta 讨论了 Flash 运行时单线程天性所带来的挑战:

Buzzword 为了保持用户响应,必须对每一次键盘敲击做尽可能少的工作,但我们无法奢望使用后台线程,因为 Flash 对 ActionScript 只支持一个线程(通过使用定时器和 frameEnter 时间,也可以实现后台处理,但你必须自己小心管理这些时间处理程序和“主线程”。)在 Buzzword 中,我们的所有拼写检查都是同步处理的。我们曾试图通过保持一个文档的脏区域列表,然后在无操作的时候通过定时器处理这个脏列表,用以达到后台运行的效果,但这将大大增加程序设计的复杂度和不确定性,所以我们决定先看看完全实现在前台会怎么样。最后证明这个方法还是完全满足需要的。

除了在单线程环境中实现拼写检查,Coletta 还谈到了在性能方面的挑战:

我们要保证尽可能快的启动 Buzzword,其中要做的一件事情是在后台加载并解压主要的拼写检查字典。(事实上,SPL 已经实现了这个功能,所有的用户都能使用。)然而,后台字典加载有一个缺点:它在字典加载和文档编辑之间制造了一种竞争状况,一个熟练的用户用五秒或十秒钟就能完成工作,而此时字典可能还没有下载完。要让用户再等五或十秒是不行的。我们在文档打开时通常只检查有标记的单词,但在这种特殊情况下,我们必须在字典加载后重新扫描整个文档,因为客户已经在没有实时检查的情况下编辑了一些时间了。

请到 David Coletta 的博文继续读下去吧,他还讨论了在Buzzword 的协作功能中添加拼写检查的挑战。当与更传统的服务器端框架比较时,实现像Buzzword 这样的RIA 显然会有很多新的挑战。对于Flash 应用来说,挑战通常来自于平台提供的新功能——Flash 的客户端编程。

查看英文原文: A Look at the Buzzword Spell Checker Implementation - - - - - -

译者简介:戴垚,2000 年计算机硕士毕业后一直从事软件开发管理工作,目前在一家大型外企担任开发部门经理。关心软件技术和相关工具的动态,深信技术的使用应以创造价值为根本。目前致力于 SOA 的研究,希望能对业已复杂的企业环境有所帮助。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-12-18 21:021242

评论

发布
暂无评论
发现更多内容

通过 Pollyoyo 快速绘制图表:高效使用 PlantUML 的最佳选择

Byte

1688跨境代采业务用的接口大全

tbapi

1688代采系统 1688代采 1688代采接口

Flink 批作业如何在 Master 节点出错重启后恢复执行进度?

Apache Flink

大数据 flink

以生态共建推动产业发展,深开鸿亮相2024开放原子开源生态大会

极客天地

Sitting Ducks攻击导致每日百万域名遭劫持!

防火墙后吃泡面

HyperMesh施加正弦荷载

智造软件

网格 载荷 Hypermesh

如何实现低成本降噪?风扇噪声流体仿真解决方案

Altair RapidMiner

设计 仿真 噪音数据 altair

轻松构建游戏登录能力,打造玩家流畅体验

HarmonyOS SDK

华钦科技将发布2024财年下半年及全年财报

财见

新特性速览! Sermant 2.1.0版本重磅发布

华为云开源

开源 字节码 微服务治理 sermant

薇美姿舒客B2B订货平台:抢占末端渠道先机,实现持续增长

赛博威科技

再谈十二要素方法论

俞凡

架构 最佳实践 云原生

勇气:雷军2024年度演讲

老张

自由职业 不忘初心 勇气

亚马逊云科技助力贵州省铜仁市石阡县免费乳腺癌筛查活动

财见

新突破!同方威视主导的又一项国际标准正式发布

财见

如何快速上手一个新项目?

不在线第一只蜗牛

数据库 数据

万字长文解读生成式AI参考架构

俞凡

人工智能

Kimi 探索版发布,搜索量增强 10 倍;北大&快手开源 Pyramid Flow Matching 丨 RTE 开发者日报

RTE开发者社区

软件测试学习笔记丨Linux三剑客-grep

测试人

软件测试

沉浸式娱乐新纪元,3DCAT推出5G+实时云渲染VR大空间解决方案

3DCAT实时渲染

实时云渲染 云VR VR大空间

看一看Buzzword拼写检查的实现_Java_Jon Rose_InfoQ精选文章