标签: dojo

Dojo addOnLoad,但是Dojo加载了吗?

我遇到了似乎鸡和蛋的问题,并且我认为这是一个合乎逻辑的解决方案.然而,在我看来,其他人肯定遇到过类似的东西,所以我想我会把它漂到那里为群众.

情况是我想使用dojo的addOnLoad函数来排队一些回调,这些回调应该在DOM完成客户端渲染之后执行.所以我正在做的如下:

<html>
    <head>
        <script type="text/javascript" src="dojo.xd.js"></script>
        ...
    </head>
    <body>
        ...
        <script type="text/javascript">
            dojo.addOnLoad( ... );
            dojo.addOnLoad( ... );
            ...
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,问题是我似乎在整个Dojo库下载浏览器之前调用了dojo.addOnLoad.这在某种程度上是有道理的,因为内联SCRIPT内容应该在加载整个DOM 之前执行(并且触发正常的主体onload回调).

我的问题是 - 这是我的方法声音,或者更有意义的是注册普通/标准正文onload JavaScript回调来调用一个函数,它执行与每个dojo.addOnLoads在SCRIPT块中所做的相同的工作.当然,这就引出了一个问题,如果您不能保证在使用库之前加载Dojo库,为什么还要使用dojo.addOnLoad呢?

希望这种情况对我以外的人有意义.好像其他人可能遇到过这种情况.

思考?

最诚挚的问候,Adam Rice

dojo dom onload

11
推荐指数
1
解决办法
1万
查看次数

哪个JavaScript框架通常用于高性能网站?

有不同的JavaScript框架,如jQuery,Dojo,mooTools,Google Web Toolkit(GWT),YUI等.其中哪一个适用于高性能网站?

javascript jquery gwt dojo frameworks

10
推荐指数
2
解决办法
3117
查看次数

如何在dojo中获取FilteringSelect <select>的"值"?

我正在使用dijit.form.FilteringSelect来提供一种从<select>中选择值的方法.问题是,当使用dojo时,返回标签而不是s的值.

例如: 如果选择了该选项,Dojo将返回文字"one",而不是该选项的值"1"."2"和"2"也是如此.
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

如果从此元素中删除了dojo,则会按预期返回该值.

html javascript forms dojo

10
推荐指数
4
解决办法
3万
查看次数

快速,轻量级的XML解析器

我有一个特定的格式XML文档,我将推动.此文档将始终为相同类型,因此非常严格.

我需要解析这个,以便我可以将它转换为JSON(嗯,一个稍微混淆的版本,所以其他人可以使用它与DOJO).

我的问题是,我是否应该使用非常快速的轻量级(不需要SAX等)XML解析器(任何想法?)或编写我自己的,基本上转换为StringBuffer并旋转数组?基本上,我假设所有HTML解析器都将通过字符串(或内存缓冲区)旋转并解析,从而产生输出.

谢谢

编辑

xml将介于3/4行到最大约50行之间(极端情况下).

java xml dojo json

10
推荐指数
2
解决办法
2万
查看次数

Dojo在以编程方式更改值时选择onChange事件触发

我有一个dojo(dijit)选择下拉列表调用js函数onChange.我希望这只在用户更改下拉列表中的值时调用onChange函数,但是,当我以编程方式更改js代码下拉列表的值时,它甚至会调用onChange函数.如何在用户更改下拉值时仅调用该函数?当我以编程方式更改值时,它不应该调用该函数.

<select jsId="ddlBoundaryType" id="ddlBoundaryType" name="ddlBoundaryType" 
                            dojoType="dijit.form.Select">
                            <option value="0">Circle</option>
                            <option value="1">Polygon</option>
                        </select>

dojo.addOnLoad(InitBoundaries);
    function InitBoundaries() {
        dojo.connect(dijit.byId("ddlBoundaryType"), 'onChange', Boundaries_ChangeBoundaryType); 
    }
Run Code Online (Sandbox Code Playgroud)

谢谢,贾斯汀

dojo dijit.form

10
推荐指数
2
解决办法
2万
查看次数

删除所有子节点

如何删除所有子节点<div id="test"></div>使用Dojo或纯JavaScript?

javascript dojo

10
推荐指数
4
解决办法
3万
查看次数

Sencha touch vs Dojo Mobile vs jQuery Mobile?

  • 我已经阅读了Sencha Touch文档.我觉得它的MVC模型非常有吸引力,但它似乎有很长的启动时间,特别是对于外部JavaScript(例如:map).

  • 虽然我很高兴在网站上使用jQuery,但我对jQuery Mobile的成熟感到担忧.(我还没有测试过)

  • 我不知道Dojo的移动框架.

您喜欢以下哪种替代方案?为什么?

mobile dojo sencha-touch jquery-mobile

10
推荐指数
1
解决办法
9324
查看次数

如何通过CDN使用Dojo加载自定义AMD模块?

我正在使用谷歌的CDN,并尝试使用他们的加载器加载我自己的AMD模块.我知道我做错了什么但是我被卡住了.有任何想法吗?

    <script src="https://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js" 
            type="text/javascript" data-dojo-config="async:true,parseOnLoad:true"></script>
    <script type="text/javascript">
        require(["dojo/_base/kernel", "dojo/_base/loader", "dojo/parser"], function(dojo){
            dojo.registerModulePath("pgGallery", "http://127.0.0.1:8080/js");
        });
        require(["pgGallery/Message"], function(m){
            m.success("foo");
        });
    </script>
Run Code Online (Sandbox Code Playgroud)

http://127.0.0.1:8080/js/Message.js是模块的位置.

javascript dojo amd

10
推荐指数
1
解决办法
4949
查看次数

dojo的最小构建配置如何?

我研究了构建教程,发现了Web构建(仅限1.7.2),并测试了几个示例 - 但是,我找不到构建系统的简单解释.

假设我的应用是一个网页:

<script src="./js/App/other_non_amd_stuff_working_independently.js">
<script src="./js/lib/dojo/dojo.js" data-dojo-config="async: true"></script>
<script src="./js/App/Main.js">
Run Code Online (Sandbox Code Playgroud)

Dojo SDK位于./lib/,Main.js包含Dojo config + app boot:

require({
    packages:[{
        name:"App",
        location:"../../App"
    }]
},  
[ "dojo/query",
  "dijit/layout/BorderContainer", 
  "App/Foo",
  "dojo/domReady!"], function(query, BorderContainer, Foo) { ... });
Run Code Online (Sandbox Code Playgroud)

我现在的问题就像这样简单:如何从我所有的Dojo/AMD东西中创建一个单独的脚本文件?我只是想替换

<script src="./js/lib/dojo/dojo.js" data-dojo-config="async: true"></script>
<script src="./js/App/Main.js">
Run Code Online (Sandbox Code Playgroud)

一个人

<script src="./js/Main.minified.js">
Run Code Online (Sandbox Code Playgroud)

让构建系统在这方面工作似乎有点不重要.它试图将./App/中的所有文件转换为AMD模块(这不是我想要的......)或者无法找到App/Main.我尝试构建一个构建配置文件(app.profile.js),但我不明白这一点,只是它增加了(IMO不必要的)复杂性.如何使构建系统只连接我的App/Main.js包含.依赖?

任何有关理解构建系统的更好教程的提示也值得赞赏.

dojo dojo-build

10
推荐指数
1
解决办法
1859
查看次数

id和data-dojo-id之间的区别

dojo标记中的id和data-dojo-id之间的区别是什么:

<button id="save" data-dojo-type="dijit/form/Button" type="button" data-dojo-attach-event="onClick:save">Save</button>
Run Code Online (Sandbox Code Playgroud)

我尝试引用此按钮来更改它的标签:var myButton = dijit.byId("save"); 这样我就可以更改按钮标签myButton.set("label","Add New");

如果我使用id ="save"它可以工作.如果我只使用data-dojo-id ="save"则不起作用.

我对Dojo很新,所以你可以指点我的解释或教程将不胜感激!

dojo

10
推荐指数
1
解决办法
5793
查看次数