jquery - Javascript 在同一个 html/php 文件或单独的 js 文件中的性能
问题描述
我想知道什么对性能更好,包括您的 html 代码下的 js 文件或有一个单独的 js 文件,例如
索引.html
<html>
<head></head>
<body>
<button id="done">click me!</button >
<script>
$( "#done").click(function(e) {
alert("Hello");
});
</script>
</body>
</html>
- 或者
索引.html
<button id="done">click me!</button >
自定义.js
$( "#done").click(function(e) {
alert("Hello");
});
解决方案
就代码编译和执行速度而言,两者都是一样的,代码就是代码。
然而对于页面加载速度来说,这实际上并不像人们想象的那么简单。
对于具有少量代码的小页面 -内联 JS 会更快。
这是因为您没有等待 Javascript 加载的往返时间(尤其是在移动连接上,请求到达服务器并返回可能需要 350 毫秒)。
随着 JS 大小的增加,尽管您可以并行下载多个文件,这抵消了启动与服务器的连接所需的时间。
除非您真的要从页面中挤出最后一点性能,否则请使用外部脚本(即使您要追求最高速度,也要将 JS 保持在 20kb GZIPped 以下,否则不值得)。
如果您想提高加载速度,请使用“异步”或“延迟”(如果您的 JS 不依赖加载顺序,则首选异步)并将它们添加到页面的 HEADER(这与大多数建议相反,但因为它们是延迟或异步的,它们不会阻止渲染,并且会更快地被请求)。
如果你想要性能提升
内联渲染“首屏”所有内容所需的 CSS - 这让网站感觉快如闪电(但它比您想象的要难)。
花更多的时间来最小化请求的数量和文件的大小。
推荐阅读
- linux - 如何摆脱:第 1 行:/backup: 是目录,错误消息?
- django - 如何在 DRF 中实现会话空闲超时
- python - 如何在 Jupyter notebook 中找到特定的代码行?
- drake - 直接搭配时:InputPort::Eval(): required InputPort[0] (geometry_query)
- python - python web scraper中的错误无法正常运行
- javascript - My Balance States Throws Balance.map 不是函数错误?
- react-native - 如何获取图像链接作为输入并使其显示在下面的视图组件中?
- reactjs - 如何使用 react-big-calendar onRangeChange 选项
- excel - VBA在公式上创建@符号
- kubernetes - 如何在限制 GCP 成本的同时扩展 Kubernetes 集群