Javascript and jQuery Execution/Sequence
Javascript and jQuery Execution/Sequence
关于Javascript/jQuery执行及其顺序的问题/澄清。
如果我似乎在这里回答了我自己的问题,请原谅我,但我觉得我在这个过程中错过了一个关键的东西。
我被告知我的选择器没有参加,因为 DOM 还没有准备好,这带来了这个问题。脚本最初是使用ready jQuery ready方法在头脑中。
谢谢大家。
问题:
- 无法访问 Drupal 模板文件。
- 只能加进头。
- 通过jQuery追加对于脚本标签不太有用。
- 我们的解决方案目前是链接到标记中的文件。
- 我真的在寻求澄清这里的过程。
上下文:
(对不起)...元素不是我的选择器的目标,来自头部的脚本。语法是正确的,因为它针对 HTML 标记没有问题。
我的理解是在 DOM 完全构建后触发的现成方法/结果侦听器。
我相信我已经知道的:
我知道理想情况下,脚本应该放在标记中结束正文标签的正上方。
我知道当分词器遇到脚本标签时,它会停止所有内容并执行脚本(除非延迟/异步)。
我知道这就是为什么理想情况下它们应该放在关闭正文标签上方,以便 DOM 准备就绪。
我知道 jQuery ready 方法附加了一个侦听器,当浏览器在加载 DOM 后切换到就绪状态时,它会触发。
问题:
鉴于所有这些,放置在头部会使 ready 方法无用,因为它会因为分词器而立即执行?
这真的只是为了避免碰撞/覆盖多个窗口加载吗?(应该澄清一下。
鉴于所有这些,放置在头部会使 ready 方法无用,因为它会因为分词器而立即执行?
错。ready()
方法仅在 DOM 完全加载时才被调用,ready()
所做的只是建立一个等待 DOM 加载的侦听器,以便在 DOM 准备好作时执行 ready()
方法中的语句,换句话说,它将一个侦听器添加到 loaded
事件中,该侦听器仅在文档完全加载时被调用和执行。
这真的只是为了避免碰撞/覆盖多个负载吗?
"碰撞/覆盖"的真正含义是什么?你可以让多个侦听器在 JavaScript 中侦听相同的事件,它们不会相互覆盖或冲突。
从你的问题:
我知道 jQuery ready 方法会等到浏览器在加载 DOM 后切换到就绪状态。
嗯,有点。jQuery ready
方法不会等待。它附加一个事件侦听器。函数已附加,但未执行。该函数仅在 DOM 准备就绪时执行;页面的其余部分将继续加载。
你真的在微优化的领域。是的,将script
元素放在body
的末尾是理想的,但它在现实中的影响很小,除非您有一个庞大、复杂且耗时的脚本。
- Passport.js Execution
- Execution of code in <script>
- Jquery Tablesorter execution
- Javascript and jQuery Execution/Sequence
- Javascript Promise Sequence
- Javascript/JQuery Execution order
- NodeJS/Express app.use sequence and usage
- Javascript Q Promise Sequence Order with Arguments
- JS, how to stop process execution if it's beeing execute
- JS i/o sequence
- Selenium Python Javascript Execution
- if(!sequence.hardPaused)是什么意思?
- Javascript setTimeout sequence
- CKEDITOR eval execution
- backbone.js block route execution
- Socket.IO/Node.JS execution
- JavaScript / JQuery Double Execution