将JS文件放在网页底部几乎是好事吗?

Goo*_*bot 7 html javascript performance seo pagespeed

广泛建议将JS文件放在页面底部以允许首先加载html代码.在这种情况下,访问者在等待页面满载时会看到一些东西.但是,我认为这是不利的,原因如下:

  1. 现代设计主要依赖于JS.这意味着在加载JS之前,页面看起来很难看.

  2. 如果在加载期间中断连接(根本不加载JS),访问者将错过一些网站功能(可能非常重要); 并且他们不会理解这是加载的问题(重新加载页面).

  3. 如果服务器端脚本die(由于错误)在脚本之前的脚本末尾(例如在PHP中),访问者将错过整个页面功能(通过JS); 但如果在顶部加载JS,它们只会错过页脚或页面的一半.

  4. 如果首先加载JS,浏览器将并行加载其他东西(如图像); 但如果最后加载JS,可能会增加加载时间.因为JS文件很大(例如JQuery和JQuery UI),所有小东西(如图像)都已加载,我们正在加载一个大文件,最后一行.

更新: 5.因为jQuery库应该在代码之前加载; 如果在页脚中加载jQuery库(例如footer.php),则无法为不同页面(在正文中)添加自定义jquery代码.

如果我错了请纠正我!将JS文件放在页脚中仍然有益吗?

Eri*_*pen 4

编辑:我要添加另一点来回应我在人们耳朵中看到的关于这个主题的棉花。

附加点#5。如果您非常关心 JS-fail 的处理行为,我的意思是,人们在关闭 JS 的情况下浏览,那么您应该做的是接受渐进增强的概念。例如,您可以设计一个手风琴菜单,默认情况下充当悬停时的弹出菜单(仅使用 CSS 即可),然后在启用 JS 时通过更改关键类来删除该行为。这样,如果用户应该关闭 JS,他们就可以在没有 JS 的情况下访问链接,但当 JS 工作时,他们会获得增强的行为。

但是您不应该尝试处理的是,由于页面在后端被破坏,因此本应包含 JS 文件的页面上缺少整个 JS 文件。处理意外情况是一回事,但处理在提供 HTML 文件之前未能完成构建的情况不应该被视为生产中可接受的场景,特别是如果您的模板语言有实际的后端代码(您不应该这样做)等待泄露给潜在的黑客一些可能有趣的东西。损坏的页面应该作为错误消息。

==================================

  1. 大错特错了。任何时候你使用 JS 来调整页面的初始静态外观,你都做错了。保持关注点分离,您的页面将会更加灵活。使用 JS 来调整页面的静态样式并不现代,它是低级的,你可以告诉 jQuery 移动人员我说过同样的话。如果你绝对必须支持 IE6、IE7 和 IE8,请告诉你的客户,如果他们拒绝接受任何东西作为 5% 客户的绝对优雅降级的替代方案,那么他们要花多少钱去到处剪掉圆角渐变角——根据。

  2. 如果您的页面事先没有 JS,则需要很长时间才能加载,那么您还有其他问题需要解决。您正在加载多少资源?你的 PHP 进行了哪些不合常理的预处理?我称之为后端或设计恶作剧。

  3. 你是说半个页面包含有效的 JS 是可以接受的,而不是完全不可接受的?不要放开那个客户,无论他们是谁。

  4. jQuery 最小化后的大小约为中型 JPEG 的大小。

注意:上面有一些 JS 并不是完全不可接受的。一些专门的代码(例如分析工具或画布标准化器)需要它。但任何不需要的东西都应该放在底部。每次解析 JS 时,整个页面加载和流量计算过程就会陷入停滞。将你的 JS 推到底部可以改善感知的页面加载时间,并且还应该提供证据,表明你的团队中的某个人需要快速踢屁股来找出他们的代码为什么会崩溃或者可以用他们的 25 MB png-24 做什么它们只是缩小而不是重新格式化。