javascript - 拆分脚本/CSS 是否会产生更快的执行/绘制时间

标签 javascript html css performance load

我知道,当浏览器下载远程脚本时,它会等到整个文件下载完成后再执行(显然)。 将文件拆分为多个远程文件会增加加载时间,但也允许更快地执行一些重要代码。

内联脚本的加载/执行工作是否相同? 假设确实如此,那么分割内联脚本将在所有加载时间上产生如此小的增加,这不会被注意到,并且它将允许一些代码执行更快的结果。(双赢)

示例

<script>
    /* 
        Critical JS Block (Any Initial visual Dom Manipulation or loading critical assets)
    */
     function loadCSS(){};  //https://github.com/filamentgroup/loadCSS
     document.getElementbyId('textbox1').value(localStorage.textbox1);
</script>
<script>
     /* 
       Non Critical JS Block
        ui event listeners
        buttons, menus, tabs, etc
    */
</script>

<script>
    /* 
        lazy loading / pre-loading assets 
    */
</script>
</body>

这对内联有效吗<scripts>和内联<style>

<style>
    body{display:none;}
    /* 
        Critical CSS Block
    */ 
    body{display:block;}
</style>
</head>
<body>
...
<style>

    /* 
        Non Critical CSS Block
    */ 

</style>
</body>

如果这确实有效并且是一个实用的解决方案,那么哪些 block 作为内联会更好,哪些外部脚本更好?

最佳答案

简短的回答是:理论上是的,在实践中,如果您在拆分内联脚本时发现渲染性能有所提高,则很可能存在一些设计问题。

内联脚本/CSS block 像页面上的其他任何内容一样阻止渲染(因此,在加载任何其他视觉元素之后,始终将它们放置在底部),并且拆分它们将允许部分显示,直到页面的其余部分加载.

也就是说,如果您在 javascript 中进行大量处理,足以导致您的脚本可能导致用户可见的页面延迟,那么您最好不要一开始就将其设为内联脚本。最简单的标准解决方案是将其放入自己的 js 文件中,并从内联脚本异步加载它。

关于javascript - 拆分脚本/CSS 是否会产生更快的执行/绘制时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35225330/

相关文章:

javascript - 使用 javascript 模拟用户 session

php - 在包含文件中使用 PHP 变量在包含文件中计算为 NULL

javascript - 无法使用 javascript 根据输入计算面积

javascript - 如何使用 HTML/CSS/JavaScript 开发桌面应用程序?

javascript - 为什么我在这个问题上总是得到错误的答案?

javascript - 如何用javascript填充文本框?

jquery - 我的javascript代码错误

javascript - 动态调整div中的文本大小

javascript - 从具有多个球的圆形边界反弹?

javascript - jQuery 事件命名空间不起作用