avalon只能在head引入脚本?IE8,9资源文件加载两次!

发布于 2022-09-05 14:59:17 字数 1561 浏览 19 评论 0

avalon2(v2.2.8)只能在head引入脚本吗?
body引入脚本的情况下,IE8,9下出现了js文件被加载两次的情况。

如下代码,两个js文件在network下查看都被加载了两次

<head>
    <meta charset="utf-8">
</head>
<body>
    <div>这是首屏静态内容</div>
    <div>这是vm模板内容</div>
    <script type="text/javascript" src="https://unpkg.com/avalon2@2.2.8/dist/avalon.js"></script>
    <script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
</body>

都移到head标签中后正常,但我的首屏问题如何解决呢?

<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="https://unpkg.com/avalon2@2.2.8/dist/avalon.js"></script>
    <script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
</head>
<body>
    <div>这是一些静态内容,需要首屏的高性能</div>
    <div>这是vm模板内容</div>
</body>

这样的话,underscore也会被加载两次。

<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="https://unpkg.com/avalon2@2.2.8/dist/avalon.js"></script>
</head>
<body>
    <div>这是一些静态内容,需要首屏的高性能</div>
    <div>这是vm模板内容</div>
    <script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
</body>

我觉得这是一个很常见的业务场景,我并不想把所有脚本都放在head中引入,但不放head里却在IE8,9下表现异常,请问该如何解决这个问题呢?

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

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

发布评论

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

评论(1

汹涌人海 2022-09-12 14:59:17

思来想去觉得是解析body内的vm模板后又把编译后html重写入body内导致的。

所以我看了下源码,默认在avalon.ready后scan了body,注释掉了这句,然后自行修改如下后解决了问题:

<body>

<div id="root">
    <div>这是首屏静态内容</div>
    <div>这是vm模板内容</div>
</div>
<script type="text/javascript" src="https://unpkg.com/avalon2@2.2.8/dist/avalon.js"></script>
<script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
<script>
     avalon.ready(function () {
         avalon.scan && avalon.scan(document.getElementById('root'));
     });
</script>

</body>

最后想 @司徒正美 老师,这个默认scan body的逻辑有点不太通用,能否开放到配置里去呢?

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