我在一封关于Javascript性能的电子邮件列表中看到了一篇引人入胜的文章。我不记得文章的名称或文章中的措辞,电子邮件早已不复存在。我想也许你可以帮我慢慢记忆。
文章中提出的想法是,在网页上执行简单/琐碎的任务 - 例如发布状态更新,投票投票或放弃竖起大拇指 - 应该是即时的。为实现这一目标,假定AJAX请求将成功并继续在页面上进行可视化更改以指示成功(附加状态更新,显示投票结果等)一旦用户完成操作。
我认为这种技术被称为“假定的javascript”或“伪性能某事或其他”,但这些搜索并没有返回我正在寻找的东西。你们大家都知道我在说什么吗?有用的文章有什么好的链接吗?
答案 0 :(得分:2)
听起来你所指的是Alex McCaw最初将其命名为“异步用户界面”(AUI)的博客文章:
http://blog.alexmaccaw.com/asynchronous-ui
约瑟夫发表的关于多人游戏中使用的技术的回复实际上被称为“航位推算”。早在20世纪90年代,当我们使用56k拨号调制解调器时,延迟是实时多人游戏中的一个严重问题。为了掩盖延迟,在Quake等游戏中引入了“航位推算”,根据预测的方向,速度等推断出玩家的路径。
这是我从那时开始记得的一篇文章,使用了这个术语:http://www.gamasutra.com/view/feature/3230/dead_reckoning_latency_hiding_for_.php
今天仍在使用航位推算。该创新主要涉及对插值的外推使用:而不是等待数据包到达和插值(总是在实际事件之后),外推用于尝试和预测玩家或对象可能在哪里。但是,真实事件不“替换”预测。如果先前的预测不正确,我们会使用任何到达的新数据来尝试创建更准确的新预测,而不是仅仅将玩家或对象“传送”到正确的新位置。
同样的原则应该应用于UI设计。如何设计异步UI以便提供最佳预测?如果预测失败,你怎么能避免“传送?”例如,在民意调查中,如果您提供预测的民意调查结果,并且您的预测有所偏离,并且您随后通过提供截然不同的结果来“纠正”您的预测,则只会在“纠正”到达时使用户感到困惑。因此,虽然这取决于您的创造力,但您可以使用现有技术,例如民意调查示例中的“预取”。
答案 1 :(得分:1)
Meteor框架也使用了这种技术。
答案 2 :(得分:1)
我正在寻找的具体文章由Luke Wroblewski撰写,名为“移动设计细节:乐观地执行行动” - http://www.lukew.com/ff/entry.asp?1759。 (@ RogerP对Alex McCaw的引用在我听到“乐观”这个词的时候向我指出了正确的方向)LukeW写道,现实世界的例子是选择乐观地认为AJAX请求将返回成功并抢先更新UI以表明成功。谢谢你的帮助,你好!