写点什么

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

评论

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

【YashanDB知识库】进行load data的时候报找不到动态库liblz4.so

YashanDB

数据库 yashandb

贝锐花生壳简单3步映射金蝶KIS接口,实现财务凭证远程同步

贝锐

内网穿透 金蝶

指标平台在处理大量数据和复杂指标查询时的性能如何?

Aloudata

数据分析 指标管理 指标平台 指标开发

推荐一个适合TikTok直播的海外直播专线

Ogcloud

海外直播专线 tiktok直播 tiktok直播专线 tiktok直播网络 tk直播专线

陪玩系统源码,陪玩小程序怎么做才能赚钱,陪玩多人语聊房,游戏陪玩app源码陪玩H5源码

DUOKE七七

Vue 前端 后端 uniapp thinkphp

G1原理—G1是如何提升分配对象效率

不在线第一只蜗牛

Java 算法 JVM

【YashanDB知识库】如何输入小写表名的函数参数

YashanDB

数据库 yashandb

显卡较量:AMD和英伟达哪个好?

Finovy Cloud

英伟达 AMD 显卡

【YashanDB知识库】YMP在迁移过程中,遇到报错:failed to open file /qianyi/ymp/ymp_23.3, errno 2, error message "No such file or directory".

YashanDB

数据库 yashandb

基于时间维度水平拆分的多 TiDB 集群统一数据路由/联邦查询技术的实践

PingCAP

数据库 分布式 TiDB

主体分割技术,提升图像信息提取能力

HarmonyOS SDK

HarmonyOS

如何在 NocoBase 中开发插件发送 WhatsApp 消息?

NocoBase

开源 工作流 低代码 插件 无代码

浅谈 2025 年加密货币叙事中的「真相」和「谎言」,哪些叙事值得关注?

TechubNews

研究报告 #区块链 #Web3

多样化消息通知样式,帮助应用提升日活跃度

HarmonyOS SDK

HarmonyOS

剪贴板文件笔记快捷工具Unclutter for Mac激活版

小玖_苹果Mac软件

【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错

YashanDB

数据库 yashandb

TiDB 8.5 LTS 发版——支持无限扩展,开启 AI 就绪新时代

PingCAP

数据库 AI 分布式 TiDB

使用海外直播专线,拓展直播带货的海外市场

Ogcloud

海外直播专线 海外直播 直播专线 海外直播网络 海外直播IP

Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战

PingCAP

MySQL TiDB newsql

全球领先光伏企业的碳管理进阶之旅

AMT企源

碳管理

软件提取工具Pacifist for Mac激活版

小玖_苹果Mac软件

PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”

PingCAP

数据库 开源 分布式 TiDB pingCAP

“面面俱到”!人脸活体检测让应用告别假面攻击

HarmonyOS SDK

HarmonyOS

指标平台如何帮助企业更有效地利用指标?

Aloudata

指标管理 数据虚拟化 数据编织 指标平台 指标开发

年度人力费用你管对了吗?

AMT企源

企业管理 人力成本管控 人力费用

浏览器缓存清理工具Cookie for Mac激活版

小玖_苹果Mac软件

桌面贴纸工具Desktop Stickers for Mac激活版

小玖_苹果Mac软件

【YashanDB知识库】如何解决删除分区后索引失效问题

YashanDB

数据库 yashandb

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