JavaScript's get-it-done nature

JavaScript's get-it-done nature

本文关键字:get-it-done nature JavaScript      更新时间:2023-09-26

JavaScript是否打算在网站/web应用程序上尽可能少地运行?我的意思是,通常的意图是运行通过所有的js文件,只要页面加载并把它们放在一边,然后当函数来执行它们,并完成它?

我正在使用谷歌地图的一个项目,我有一个自定义标记对象脚本出来,调试器告诉我,浏览器运行通过我所有的js文件之前,任何东西甚至出现在页面上。

我的问题出现在这里:我想用jQuery动画某些标记来连续地上下反弹(类似于OS X dock中的图标),我在无限循环函数中的几次尝试都只是崩溃了浏览器。所以我明白,浏览器不喜欢,,但有没有一种方法,让一个简单的脚本在后台重复自己,而用户导航页面?或者JavaScript不应该这样使用?

(我用Flash工作了很长时间,所以我的心态仍然在那里。)

是的,Javascript函数应该尽其所能并尽快退出。GUI和脚本在同一个线程上运行,因此只要您在Javascript函数中,浏览器中就不会显示任何内容。如果你尝试使用无限循环,浏览器将会冻结。

您使用window.setIntervalwindow.setTimeout方法来触发在特定时间运行的代码。通过运行一个每秒更新几次的间隔,你可以创建一个动画。

您必须设置计时器以在指定时间后执行脚本。

var timer = setTimeout(code, milliseconds);

将在某某毫秒内执行code。每次执行脚本都可以设置一个新的计时器来再次执行脚本。

您可以使用clearTimeout(timer)取消定时事件。

使用setTimeout()或setInterval()。MDC关于它的文章非常好。

你需要在快速运行但被多次调用的函数内部更新,而不是在循环内部更新。

既然你说你正在使用jQuery,考虑使用它的效果API(例如,jQuery.animate()),它将使你的生活更容易!

就我个人而言,我将尽可能多的代码保存在页面加载后执行,部分原因是将所有<script>放在<body>的底部。这意味着(可感知的)页面加载时间的减少,同时让我所有的JS在需要时准备好运行。

我不建议你在文档的开头就把所有需要做的事情都讲一遍。相反,将事物绑定到事件,如按钮的单击等。