我一直在读 O'Reilly 的书“Dojo - The Definitive Guid”,但有些东西对我来说仍然不确定。

他们谈论“引导”并从 AOL CDN 获取 dojo.css”。

当我在我的机器上进行测试时,我应该使用 CDN 吗?或者我应该等待并仅在部署时使用它?

其次,本书讨论了 dojo 的 CDN,但没有讨论 dijit。

我正在 Google App Engine (GAE) 上进行开发 - 因此在我的 Javascript 目录中拥有 2000 多个 Dojo/Dijit 文件有点烦人,因为它每次都会减慢我上传到 GAE 的速度。

Firebug 给我这个错误:得到 http://localhost:8080/dijit/nls/dijit-all_en-us.js 404找不到 http://localhost:8080/dijit/_editor/plugins/FontChoice.js 404 未找到

我从这里下载了示例:http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html?theme=soria我想“简单地”让它在本地谷歌应用程序引擎(即您在上面的 URL 中看到的 localhost:8080)下在我的计算机上运行。

我看到这个语句可能是导致上面第二个 404 的原因:dojo.require("dijit._editor.plugins.FontChoice");

另一个错误:无法访问优化的闭合预紧(“ en-us”)dijit-all.js(第479行)匿名(“ dijit.nls.dijit-all”,[“ root”,“ ar”,“ ar”,“ ca”,40多.. 。0 = root 1 = ar 2 = ca 3 = cs 4 = da 5 = de 6 = de-de 7 = el 8 = en = en 9 = en-gb])dijit-all.js(行489)dijit-all.js ()dojo.i18n._searchlocalepath(locale,true,function(loc){ n

现在继续,我将尝试复制整个 dijit 库,但是有没有其他解决方案?

我当前的脚本包括如下所示:

<script type="text/javascript" src="/javascript/dijit.js"></script>

<script type="text/javascript" src="/javascript/dijit-all.js" charset="utf-8"></script>

我通过将 dijit.js.uncompressed.js 复制并重命名为 dijit.js 获得了 dijit.js 文件。

有帮助吗?

解决方案

实际上你有几个选择:

  1. 您可以将 CDN 用于所有内容(尽管在本地使用完整源代码确实可以提供更好的错误消息)。 谷歌也有它们. 。迪吉特在这里: http://ajax.googleapis.com/ajax/libs/dojo/1.3.2/dijit/dijit.js 供参考。我认为这有很多优点。JS 的用户缓存是首要的。

  2. 构建分层文件。我认为奥莱利的书有一个关于它的章节,但是 实用主义书籍 IMO在这方面更好。还有这个 dojocampus.org 上的文档 关于建筑。这将减少您需要上传到 GAE 的文件并加快应用程序加载速度。这实际上是我为了减少 HTTP 请求而所做的。

  3. 继续做你正在做的事情。:)

关于您在 en-us 文件中看到的 404 错误本质上是无害的。 这是更好的描述.

您还可能使用 dijit.uncompressed.js 和 dijit-all.js 重新加载 dijit 文件,并在此过程中引起问题......但我不确定这一点。

其他提示

我只是想澄清,使用CDN时,所有你需要包括的主要道场脚本。其余部分将自动当你dojo.require()他们拉。

如果你不想使用X-域装载机(CDN的使用这种类型的装载机的)一些(技术)的原因,你可以做一个自定义生成(在很多地方很好的描述)。在复制生成的只有相关的文件以您的服务器。无需复制所有2000+的测试,演示,未使用DojoX中的项目,dijit的等等。

在构建将创建一个单缩小的文件(或几层),其中将包括使用所有道场的JavaScript代码。如果你使用Dojo部件,其模板将已内联,这样你就不会招致命中为他们。作为构建的一部分CSS文件组合在一起,并精缩了。因此,在大多数情况下,从字面上你将有只有两个文件:一个Dojo层,它包括一切+您的自定义代码和CSS文件。在更复杂的情况下,你可能有更多的文件,但通常我们说的是极少数。

如何确保一切都在构建?启动您喜爱的网络分析仪(直播HTTP头,萤火虫,Fiddler2或查尔斯代理会做罚款),看看你打你的身材之外的任何文件。如果你 - 它们包括在建,或揣摩为什么他们的要求,并消除这些请求(一些本地化相关的调用都很好)

我个人开始与CDN选项 - 效果很好,没有麻烦,由他人与粗管道托管

要解决第一个问题,使用完整源代码版本在当地进行开发,这样就可以更清晰调试信息,它指向在源清晰的线,而不是单行缩小的版本降低到。使用CDN进行生产。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top