Tag: dojo

dojo中的require()和define()函数与我们什么时候使用的主要区别是什么?

我是学习dojo的新手,并且遇到了require()和define()函数,我无法理解其中的任何一个。 另外,我什么时候可以使用其中之一? 一个小的演示或例子将是有益的。 非常感谢!

REST与PHP中的RPC

我build立了自己的Ajax网站,并且正在考虑REST和RPC之间的关系。 如果我的服务器支持Servlets,我只需要安装并结束问题,但是我的服务器不支持Servlets。 RPC更易于编写(IMO),并且可以用PHP编写。 我所需要的只是一个数据库查询执行器。 我正在使用Dojo Toolkit和JSON。 为什么要selectREST over RPC或RPC over REST?

在使用WebSocket和dgrid的自定义dstore中缺less事件

我正在尝试创build自定义存储,应使用WebSocket或REST(在发生WebSocket失败的情况下)。 代码文件rachet-store.js 它几乎完美的工作。 它也适用于REST(myRest)。 问题是,如果使用wsStore,并且如果我删除DataGrid中的第一个或第二个页面上的一行,DataGrid会通知并刷新本身。 但是,如果我删除第三个或任何其他页面上的行,商店不刷新。 我认为这个问题可能在sort()某个地方,因为使用了Grid(或者Pagination)的工作方式。 (但它只是一个猜测…) 所以,问题是,我做错了什么?

如何检查一个对象是否有函数? (道场)

var testObj = this.getView(); 如果在实际尝试调用callableFunction()之前,如果testObj具有callableFunction ,那么如何才能使用DoJo(或者只是本地JS)进行检查,如果不存在,就会失败? 我更喜欢本地DoJo解决scheme,因为我需要这个在所有浏览器上工作。

文本和组节点的dojox.gfx边界框

dojo中的getBoundingBox()的文档说: 返回形状的边界框。 文字形状是一个基于点的对象,所以它没有定义一个边界框。 我不明白。 为web的vectorgraphics的任何理智的实现包括文本对象的边框(raphaelJS和jQuery的SVG)! 这里,“基于点的对象”是什么意思? 我没有发现Group对象的边界框的引用,但是当使用最新的Dojo版本时, getBoundingbox对Groups也返回null 我可以很容易地为矩形自己做边界框,但唯一真正有问题的形状我需要边界框是组和文本。 我结束了hotdojo dojo: dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();}); dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();}); 这当然只适用于SVG输出前端。 但我想知道,我错过了什么? 有没有更好的方法来做到这一点?

删除div中的所有子DOM元素

我有以下的dojo代码来创build一个div下的表面graphics元素: …. <script type=text/javascript> …. function drawRec(){ var node = dojo.byId("surface"); // remove all the children graphics var surface = dojox.gfx.createSurface(node, 600, 600); surface.createLine({ x1 : 0, y1 : 0, x2 : 600, y2 : 600 }).setStroke("black"); } …. </script> …. <body> <div id="surface"></div> …. drawRec()将首次绘制一个矩形graphics。 如果我在这样的锚点href中再次调用这个函数: <a href="javascript:drawRec();">…</a> 它会再次绘制另一个graphics。 我需要清除div下的所有graphics,然后重新创build。 我怎样才能添加一些dojo代码来做到这一点?

JavaScript模拟右键单击代码

我正在使用Selenium编写一些UItesting,并使用Dojo工具包创buildJavaScript树控件。 我已经使用Dojo提供的示例为树的每个节点实现了一个上下文菜单,但是我需要Seleniumtesting来“调用”树节点上的右键单击,但是我无法使其工作。 testing不会通过JavaScript模拟右键单击事件,并且不显示上下文菜单。 有没有人有任何使用Dojo和Selenium右键单击上下文菜单的经验? 或者有什么想法如何做到这一点?

如何将JavaScript数组信息导出到csv(在客户端)?

我知道有很多这种性质的问题,但我需要使用JavaScript来做到这一点。 我正在使用Dojo 1.8并拥有数组中的所有属性信息,如下所示: [["name1", "city_name1", …]["name2", "city_name2", …]] 任何想法如何可以导出到CSV在客户端?

连锁的承诺没有通过拒绝

我有一个问题,理解为什么拒绝不通过承诺链传递,我希望有人能够帮助我理解为什么。 对我来说,将function附加到一系列的承诺意味着我的意图是我依靠一个原始的承诺来实现。 这很难解释,所以让我首先展示一个我的问题的代码示例。 (注意:这个例子是使用Node和延迟节点模块,我用Dojo 1.8.3testing过,结果相同) var d = require("deferred"); var d1 = d(); var promise1 = d1.promise.then( function(wins) { console.log('promise1 resolved'); return wins;}, function(err) { console.log('promise1 rejected'); return err;}); var promise2 = promise1.then( function(wins) { console.log('promise2 resolved'); return wins;}, function(err) { console.log('promise2 rejected'); return err;}); var promise3 = promise2.then( function(wins) { console.log('promise3 resolved'); return wins;}, […]