所以我最近了解到,将 js 放在 DOM 底部已经过时了,我应该再次将它们放在<head>
具有“async”和“defer”属性。
伟大的。但我对根据优先级应该使用哪个感到有点困惑。
所以我有:
- jquery
- jquery 插件不会立即影响外观
页
- 对页面外观有直接影响的 jquery 插件
- 我自己的个人脚本,对外观有直接影响
页面,也依赖jquery
哪个应该异步,哪个应该延迟?
如果我正确理解这一切,那些不会立即影响网站外观的内容应该被推迟,而其他一切都会异步。正确的?或者我把这些搞混了。
这很简单。你应该使用[async]
对于可以按任何顺序执行的脚本,以及[defer]
用于解析 HTML 后必须执行的脚本。
例如,如果您有一个在帖子旁边添加社交共享图标的脚本,并且该脚本不依赖于任何其他脚本,则您可以同时使用这两个脚本[async]
and [defer]
。但是如果你的脚本需要 jQuery,你就不能使用[async]
,因为如果你这样做,它可能会在 jQuery 加载之前执行并中断。
如果你的所有脚本都需要 jQuery,那么你不应该使用[async]
根本不。至于[defer]
,这取决于你的脚本是否访问DOM。对于插件来说,这可能并不重要,但您自己的代码可能需要它。
如果你将脚本包装在$(document).ready();
, 您可以使用[defer]
对于不立即生效的脚本(例如需要用户交互)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)