Javascript';让我们自然完成吧
Javascript是否打算在网站/Web应用程序上尽可能少地运行?我的意思是,通常的意图是在页面加载后立即运行所有js文件并将其放在一边,然后在函数出现时立即执行它们并完成处理 我正在使用GoogleMaps进行一个项目,我有一个定制的marker对象,一个调试器告诉我,在页面上出现任何东西之前,浏览器会遍历我所有的js文件 我的问题就在这里:我想用jQuery(类似于dock中的OSX图标)设置某些标记的动画,使其不断上下跳动,而我多次尝试无限循环函数都会使浏览器崩溃。所以我知道浏览器不喜欢这样,但是有没有一种方法可以让一个简单的脚本在用户浏览页面时在后台重复它自己?或者Javascript不应该这样使用Javascript';让我们自然完成吧,javascript,javascript-events,Javascript,Javascript Events,Javascript是否打算在网站/Web应用程序上尽可能少地运行?我的意思是,通常的意图是在页面加载后立即运行所有js文件并将其放在一边,然后在函数出现时立即执行它们并完成处理 我正在使用GoogleMaps进行一个项目,我有一个定制的marker对象,一个调试器告诉我,在页面上出现任何东西之前,浏览器会遍历我所有的js文件 我的问题就在这里:我想用jQuery(类似于dock中的OSX图标)设置某些标记的动画,使其不断上下跳动,而我多次尝试无限循环函数都会使浏览器崩溃。所以我知道浏览器不喜欢
(我用Flash工作了很长一段时间,所以我的心态仍然存在。)你必须设置一个计时器,在规定的时间后执行脚本
var timer = setTimeout(code, milliseconds);
将在某某毫秒内执行code
。每次执行脚本都可以设置一个新的计时器以再次执行脚本
您可以使用
clearTimeout(timer)
取消定时事件。就我个人而言,我保存了尽可能多的代码,以便在页面加载后执行,部分方法是将我所有的
放在
的底部。这意味着(感知到)页面加载时间的减少,同时让我所有的JS都可以在需要时运行
我不建议您在文档开始时检查所有需要执行的操作。相反,将内容绑定到事件,例如按钮的单击等。使用或。MDC关于它的文章非常好
您需要更新快速运行但被多次调用的函数的内部,而不是在循环内部进行更新。是的,Javascript函数应该尽其所能尽快退出。GUI和脚本在同一个线程上运行,因此只要您在Javascript函数中,浏览器中就不会显示任何内容。如果尝试使用无限循环,浏览器将显示为冻结
您可以使用
window.setInterval
和window.setTimeout
方法触发在特定时间运行的代码。通过运行一个更新几秒钟的间隔,你可以创建一个动画。 因为你说你正在使用jQuery,考虑使用它(例如,<代码> jQuery,动画())/>代码>,它会使你的生活变得简单很多。p> 所以,换句话说,“我如何在Javascript中安排重复任务”?我会记住这一点,当我从数据库中提取时,事情可能会有点不同,但是Google maps需要大量的js来运行onload()
。谢谢你的否决票,不管是谁。下议院的沉默忍者再次出击。无论如何,也许把谷歌的脚本放在
的末尾。这会对事情有所帮助。也许他们不同意你的策略?谢谢我会用棍子戳的这是真的。尽管如此,我还是希望你能评论一下他们为什么投了反对票,但我离题了。很高兴我能提供一些帮助。可能是因为你的答案根本没有回答问题。我实际上在setTimeout
方面遇到了问题。我的js只会跳过setTimeout
'd行,然后继续前进,再也没有时间在2000毫秒内做它应该做的事情。我认为使用Google mapsYes会带来一些麻烦,我喜欢animate()
,但我的问题是动画的计时和循环,而不是如何创建动画本身。