【问题标题】:Alternative method to include JS files包含 JS 文件的替代方法
【发布时间】:2010-08-05 01:59:37
【问题描述】:

此问题是this question 的后续问题。

如果某些浏览器在用户禁用 JS 的情况下下载 JS 文件,那么使用 JS 包含 JS 文件以确保用户不会被不必要地强制下载 JS 是否有意义?

例如:

function inc(filename){
    var body = document.getElementsByTagName('body').item(0);
    script = document.createElement('script');
    script.src = filename;
    script.type = 'text/javascript';
    body.appendChild(script);
}

我找到了上面的代码here

这段代码有什么缺点吗?我还没有测试它以确保它正常工作,但它看起来很简单。

我试图避免将多个 HTTP 请求以及代码的下载足迹强加给显然不想要的用户。

另外,如果用户在初始加载网站后启用 JS,这将如何工作?

这还重要吗?值得关注吗?

【问题讨论】:

    标签: javascript browser download include


    【解决方案1】:

    我要回到这个问题:

    这还重要吗?值得关注吗?

    不,不是 :) 禁用 JavaScript 的用户比例应该是极少数(在大多数情况下),真的不值得去搞乱 all 的加载用户保存一些 HTTP 请求(应该缓存)一些,留下<script> 标签。

    另外,看看上一个问题中的accepted answer,在最初的测试中,3/4 浏览器还没有下载它,所以这真的是 用于 Chrome (和可能是IE),其他浏览器已经把请求保存在这里了。

    更新:我刚刚在 IE8 中进行了测试,当它被禁用时,它确实下载任何包含的 JavaScript,我目前不准备测试任何其他版本,但至少在 IE8 中是这样。

    【讨论】:

    • +1。除非您对正在开发的内容有非常特定的受众,否则未启用 JS 的浏览器数量可以忽略不计,不值得为此做任何特殊的性能工作。
    • 你说得对,如果你这样做是为了防止不支持 JS 的浏览器下载,那就太矫枉过正了。但是,如果您有一个单页 JS 驱动的页面,假设有十个选项卡,并且每个选项卡需要一大块特定的 JS,我可以看到按需下载的使用。不必一次加载所有十个选项卡,而是按需加载(当用户单击选项卡时)。
    • @Gert G:是的,当然,但正如他们所说,那是另一个故事。至少 YUI(可能还有其他人)公开了用于按需 JS 模块加载的复杂基础设施,如果这是你想要的(这与这个问题的主旨大不相同)。
    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    相关资源
    最近更新 更多