首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是依赖浏览器的javascript代码吗?

这是依赖浏览器的javascript代码吗?
EN

Stack Overflow用户
提问于 2010-07-28 06:23:25
回答 4查看 858关注 0票数 8

为什么IE和FF的输出不同?

在IE中,它的展示:Hello,在FF中它的显示:Hi

代码语言:javascript
复制
var message = "Hi";
setTimeout(function(){alert(message);},10);
setTimeout(function(){message = "Hello";},0);

什么是标准化?哪个浏览器做得对?

注意:如果我在FF中将10转换为11,那么它将显示Hello

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-28 06:30:51

Firefox处理小延迟的方式与IE不同。Firefox的延迟时间为10‘t(也不准确)。有关更多信息,请参见https://developer.mozilla.org/en/window.setTimeout的注释。

票数 6
EN

Stack Overflow用户

发布于 2010-07-28 06:31:03

在我的个人电脑上,我在FF和IE中运行了它,结果正好相反。

原因是您的超时时间仅为10毫秒。Windows上定时器的分辨率实际上是10毫秒左右,因此有可能先出现任何一个超时。要确定一件事发生在另一件事情发生之前,你绝对应该在超时之间有一个更大的差距。

即使这样,你也不应该期望它总是起作用:-)

如果您真的想要按相同的顺序执行,请将其保持在相同的代码行中,或者设置标志,说明某个特定操作是否已经完成,并在执行第二个依赖于第一个操作的操作之前检查该操作。

票数 1
EN

Stack Overflow用户

发布于 2010-07-28 06:31:07

在浏览器中不能保证计时器事件的执行顺序。它们在内部由操作系统的本机计时器实现处理,并可能以不同的顺序触发。

由于您已经指定了这么短的时间,很可能是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3350373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档