如何优化requirejs开始加载依赖之前耗了1s+

发布于 2022-09-04 18:56:35 字数 1670 浏览 16 评论 0

背景
被pm吐槽页面加载不够快,第一次使用require.js进行模块化。于是操起了chrome dev tool的timeline,看到了一个很大的问题,就是requirejs加载依赖之前,消耗了1秒多。其实在require.config那里我引用了8个dependencies,但是为了方便展示,就只剩下两个了。

问题定位
为了方便定位的确是requirejs的问题,我去掉了多余代码,确定就是requirejs的问题。代码如下:

index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{{title}}</title>
    <link rel="stylesheet" href="//cdn.hongbaorili.com/wind/static/assets/common.css">
    <script src="//cdn.hongbaorili.com/wind/static/lib/flexible.min.js"></script>
    <script src="//cdn.hongbaorili.com/wind/static/lib/require.min.js"></script>
    <script>
    require.config({
        waitSeconds: 60,  // 因为有1+s的延迟,默认的超时时间较短,为了功能正常运行才设置的
        urlArgs: "v=201703301443",

        paths: {
            "zepto": "//cdn.hongbaorili.com/wind/static/lib/zepto",
            "API": "//cdn.hongbaorili.com/wind/static/lib/api",
        },

        shim: {
            "zepto": {
                exports: "$"
            },

            'API': {
                deps: ['zepto'],
                exports: "API"
            }
        }
    });

    require(['zepto', 'API'], function($, API) {
       ...
    });
    </script>
</head>
<body>
</body>
</html>

timeline
图片描述

请教

  1. 这么怎么导致的?

  2. 如何优化?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

一身骄傲 2022-09-11 18:56:35

把所有<script>标签全部移往</body>标签前,<head>里只保留css就好;另外既然用了requirejs就不要单独写js库的标签了,统一加载多好。

天涯沦落人 2022-09-11 18:56:35

要不试试 seajs?

音栖息无 2022-09-11 18:56:35

1.把script移到</body>上面
2.可以使用requirejs optimizer,把js文件整合在一起,减少http请求。

野稚 2022-09-11 18:56:35

这个问题在requirejs的issue也有人提到过,但是没有提出解决方案,我放弃requirejs了,直接用webpack了。

拔了角的鹿 2022-09-11 18:56:35

gulp打包

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文