我有一些脚本需要等待满足某些条件才能运行 - 例如等待加载另一个脚本,或等待创建数据对象。
如何管理此类依赖项?我能想到的唯一方法是使用 setTimeout 以短间隔循环并检查函数或对象是否存在。有没有更好的办法?
如果 setTimeout 是唯一的选择,那么轮询我的页面的合理时间间隔是多少? 50 毫秒,100 毫秒?
[编辑] 我的一些脚本从页面本身或 Web 服务收集数据,有时来自多个来源的组合。数据可以在页面加载之前或之后随时准备就绪。其他脚本呈现数据(例如构建图表)。
[更新] 感谢您提供有用的答案。我同意我不应该重新发明轮子,但如果我使用一个库,至少我想了解背后的逻辑(它只是一个花哨的超时吗?)来尝试和预测对我页面的性能影响。
最佳答案
您可以在正在加载的脚本末尾调用 loaded(xyz);
之类的函数。此函数将在别处定义,并设置为根据 xyz
的值调用已注册的回调。 xyz
可以是任何东西,一个简单的字符串来标识脚本,或者一个复杂的对象或函数等等。
或者只使用 jQuery.getScript(url [, success(data, textStatus)] )
.
关于javascript - 如何管理 JavaScript 中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020681/