发布网友 发布时间:2024-09-17 07:24
共1个回答
热心网友 时间:2024-09-29 08:45
现在WEB应用包括网站,几乎都离不开JavaScript,可以大胆的说没有不使用JavaScript的WEB应用。在本文中,将总结一些JavaScript在WEB渲染速度和性能方面优化技巧。
1.将JavaScript提取到单独的文件中将脚本提取为独立的.js文件有很多优点,其中可以明显减小HTML代码的大小。
2.异步async属性告诉浏览器该脚本不会影响DOM或CSSOM,并且只能在整个页面加载和呈现后进行处理。async属性仅适用于放置在单独文件中的脚本。
3.阻塞JavaScript阻塞JavaScript是一个必须在构建CSSOM树之前执行的脚本,JS脚本会阻止渲染,无论是作为带有src属性的标记还是作为内联脚本。
4.deferdefer属性的工作方式与在正文结束标记之前添加的锁定脚本完全一样。它有效是因为即使带有src属性的<script>标记附加到页眉,它也会被添加到页脚。defer属性可能会导致脚本放置在更高的位置,例如,在body标签中,这可能会停止工作,具体取决于添加了defer的脚本。
5.压缩JavaScript脚本通过删除多余的字符,例如空格、制表符、换行符甚至整个注释块,可以最小化任何文本资源。与HTML或CSS代码相比,JavaScript代码可以被最小化。由于许多语法缩短技术,我们在这方面有更多的可能性。函数和变量的名称可以转换为单字母等价物,这不会改变编程功能的含义。阅读有关最小化文本资源和自动化此过程的技术的更多信息。
6.浏览器缓存(Cache-Control、Expires、E-Tag)下载后,包含JavaScript代码的.js文件可以保存在浏览器的缓存中:通常是在本地磁盘上。下一次子页面访问此文件时,它将不必再次下载并执行昂贵的HTTP和下载请求。服务器可能会发送一个Cache-Control或Expires标头,它告诉浏览器复制文件并在指定的时间段内使用未更改的版本。
7.压缩JavaScript文件是文本,众所周知,文本可以使用标准数据压缩算法进行压缩,在服务器端使用Brotli、GZP或deflate等模块执行的压缩对用户是不可见的,并可以节省高达80%的流量。Google开发的Brotli模块或传统的deflate或GZIP模块应默认安装并启用在任何提供JavaScript文件和其他文本资源(CSS、XML)的服务器上。
8.删除未使用的JavaScript代码有时会在没有任何功能的页面上附加JavaScript脚本,这些可以是已在另一个子页面上使用的库或已在后续更新中撤回的功能。
9.对外部服务的请求缓存如果重复引用它并且知道它不会经常更改,可以将JSON或XML文件的内容存储在一个临时变量中。
10.节流在对延迟加载机制进行编程时可以使用节流技术,包括减少触发触发器的强度,使用带有条件语句和setTimeout的简单构造,可以使事件侦听器忽略某些事件,并且该功能仍然有效。
总结在JavaScript方面利用页面优化是值得的,因为以不同方式实现的相同功能可能会显着减慢页面速度或对其加载时间没有影响。
热心网友 时间:2024-09-29 08:44
现在WEB应用包括网站,几乎都离不开JavaScript,可以大胆的说没有不使用JavaScript的WEB应用。在本文中,将总结一些JavaScript在WEB渲染速度和性能方面优化技巧。
1.将JavaScript提取到单独的文件中将脚本提取为独立的.js文件有很多优点,其中可以明显减小HTML代码的大小。
2.异步async属性告诉浏览器该脚本不会影响DOM或CSSOM,并且只能在整个页面加载和呈现后进行处理。async属性仅适用于放置在单独文件中的脚本。
3.阻塞JavaScript阻塞JavaScript是一个必须在构建CSSOM树之前执行的脚本,JS脚本会阻止渲染,无论是作为带有src属性的标记还是作为内联脚本。
4.deferdefer属性的工作方式与在正文结束标记之前添加的锁定脚本完全一样。它有效是因为即使带有src属性的<script>标记附加到页眉,它也会被添加到页脚。defer属性可能会导致脚本放置在更高的位置,例如,在body标签中,这可能会停止工作,具体取决于添加了defer的脚本。
5.压缩JavaScript脚本通过删除多余的字符,例如空格、制表符、换行符甚至整个注释块,可以最小化任何文本资源。与HTML或CSS代码相比,JavaScript代码可以被最小化。由于许多语法缩短技术,我们在这方面有更多的可能性。函数和变量的名称可以转换为单字母等价物,这不会改变编程功能的含义。阅读有关最小化文本资源和自动化此过程的技术的更多信息。
6.浏览器缓存(Cache-Control、Expires、E-Tag)下载后,包含JavaScript代码的.js文件可以保存在浏览器的缓存中:通常是在本地磁盘上。下一次子页面访问此文件时,它将不必再次下载并执行昂贵的HTTP和下载请求。服务器可能会发送一个Cache-Control或Expires标头,它告诉浏览器复制文件并在指定的时间段内使用未更改的版本。
7.压缩JavaScript文件是文本,众所周知,文本可以使用标准数据压缩算法进行压缩,在服务器端使用Brotli、GZP或deflate等模块执行的压缩对用户是不可见的,并可以节省高达80%的流量。Google开发的Brotli模块或传统的deflate或GZIP模块应默认安装并启用在任何提供JavaScript文件和其他文本资源(CSS、XML)的服务器上。
8.删除未使用的JavaScript代码有时会在没有任何功能的页面上附加JavaScript脚本,这些可以是已在另一个子页面上使用的库或已在后续更新中撤回的功能。
9.对外部服务的请求缓存如果重复引用它并且知道它不会经常更改,可以将JSON或XML文件的内容存储在一个临时变量中。
10.节流在对延迟加载机制进行编程时可以使用节流技术,包括减少触发触发器的强度,使用带有条件语句和setTimeout的简单构造,可以使事件侦听器忽略某些事件,并且该功能仍然有效。
总结在JavaScript方面利用页面优化是值得的,因为以不同方式实现的相同功能可能会显着减慢页面速度或对其加载时间没有影响。