【问题标题】:can not able to load dojo.js无法加载 dojo.js
【发布时间】:2015-05-22 10:49:55
【问题描述】:

当我尝试使用 dojotoolkit 时,我尝试在浏览器中运行(打开)以下 html 代码,正如他们在教程中所说的那样,但我的浏览器无法加载 dojo.js强>

在进行故障排除时,我发现源 URL 转换如下:

file://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Tutorial: Hello Dojo!</title>
</head>
<body>
    <h1 id="greeting">Hello</h1>
    <!-- load Dojo -->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
            data-dojo-config="async: true"></script>

    <script>
        require([
            'dojo/dom',
            'dojo/dom-construct'
        ], function (dom, domConstruct) {
            var greetingNode = dom.byId('greeting');
            domConstruct.place('<em> Dojo!</em>', greetingNode);
        });
    </script>
</body>
</html>

【问题讨论】:

  • 你试过把src="//ajax.googleapis..."改成src="http://ajax.googleapis...
  • 感谢弗兰克的建议,现在它的工作......

标签: javascript dojo


【解决方案1】:

使用真正的网络服务器,而不是从文件系统浏览。

虽然 Frank 的正确之处在于向 URL 添加显式协议可以解决此特定问题,但无论如何您都不可避免地会遇到其他问题,例如 XHR 被file:// 协议锁定。如果您在提供 http 或 https 的真实网络服务器上进行测试,您最初使用的协议相关 URL 将可以正常工作。

【讨论】:

    【解决方案2】:

    您需要添加 http 作为 dojo.js 文件源的协议。

    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
                data-dojo-config="async: true"></script>
    

    最好的做法是在 head 标记而不是 body 标记中添加库文件。

    <head>
        <meta charset="utf-8">
        <title>Tutorial: Hello Dojo!</title>
    
        <!-- load Dojo -->
        <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
                data-dojo-config="async: true"></script>
    </head>
    

    【讨论】:

    • 正文末尾的脚本是一种常见的最佳实践,因为旧版浏览器特别限制了并发脚本下载的数量,这可能会减慢其他资源(样式、图像等)的加载速度,否则这些资源可能会被加载。首先并行加载更多。同时,通常src="//..."是一个协议相关的URL,所以如果正在查看的网页是http,它会加载http,如果是https,它会加载https,这很好,但如果@987654329在这种情况下使用@,这是真正的问题,即使解决了也会导致其他问题。
    • 就像@KenFranqueiro 所说,脚本通常放在页面底部,甚至是库。 AFAIK 有某些浏览器限制只能同时从同一主机下载 2 个资源。在这里阅读更多:developer.yahoo.com/performance/rules.html#js_bottom
    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2011-01-24
    • 2010-10-21
    相关资源
    最近更新 更多