写点什么

看一看 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:021231

评论

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

携程网地方美食品列表数据接口(携程API系列)

tbapi

携程API 携程网 携程美食列表接口

HPE发布8款新服务器,英特尔至强6助力能效提升65%,每瓦性能增长41%!

E科讯

电商人必看!三分钟教你打通阿里巴巴1688商品详情接口(阿里巴巴API系列)

代码忍者

1688API接口

告别传统仿真!深度求索大模型正在重新定义工业设计未来

思茂信息

AI 仿真 DeepSeek

淘宝天猫数据API接口秘籍:快速获取商品详情与关键词搜索商品

代码忍者

淘宝API接口

AI智能体应用的开发环境

北京木奇移动技术有限公司

AI开发 AI智能体 软件外包公司

YashanDB金融特性数据库根原创实验室成立

极客天地

数字版权NFT的测试和上线

北京木奇移动技术有限公司

数字资产 数字版权 NFT 软件外包公司

KubeEdge 1.20.0发布! 6大新特性提升边缘管理能力

华为云开发者联盟

容器 云原生 k8s 边缘计算 kubeedge

区块链虚拟币资产去中心化私钥钱包开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

携程网获取景点列表API接口(携程API系列)

tbapi

携程网 携程网API接口 携程网数据采集

解锁DeepSeek深度应用,天翼云GPU云主机强势破局!

天翼云开发者社区

云计算 AI应用 gpu 算力 DeepSeek

Springboot前后端分离项目统一封装返回结果

^O^

公链开发的核心难题与高效构建指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

发挥数据在财务规划转型过程中的关键作用

智达方通

企业管理 全面预算管理 财务预测

是时候解决告警事件数据孤岛问题了

巴辉特

告警 告警事件 告警事件孤岛

Svelte 最新中文文档教程(12)—— 样式相关 style 与 class

冴羽

vue.js 前端 React Svelte SvelteKit

深度揭秘:我们是如何设计一个每天同步万亿数据的神器 - SeaTunnel架构解密

Apache SeaTunnel

MobPush 智能推送系统的用户行为分析:驱动精准运营的核心引擎

MobTech袤博科技

AI 智能体的开发技术

北京木奇移动技术有限公司

AI开发 AI智能体 软件外包公司

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