Json 基本道场

Json 基本道场,json,dojo,Json,Dojo,我开始使用Dojo;这是(本质上)我对AJAX的介绍。我们有一个Java后端(torque/turbine/velocity),并使用JSON-RPC库连接Java和Javascript 我需要知道什么?Dojo和JSON的大图是什么?哪些令人讨厌的小细节会吸引我?当你开始使用Dojo时,你花了几天的时间来追踪什么,现在你认为这是理所当然的?感谢您提供的所有提示。我也只是首先进入Dojo,他们有一个很好的API文档。甚至有一些插件的好例子 如果你问我O'Reilly的Dojo:权威指南是市场上最

我开始使用Dojo;这是(本质上)我对AJAX的介绍。我们有一个Java后端(torque/turbine/velocity),并使用JSON-RPC库连接Java和Javascript


我需要知道什么?Dojo和JSON的大图是什么?哪些令人讨厌的小细节会吸引我?当你开始使用Dojo时,你花了几天的时间来追踪什么,现在你认为这是理所当然的?感谢您提供的所有提示。

我也只是首先进入Dojo,他们有一个很好的API文档。甚至有一些插件的好例子

如果你问我O'Reilly的Dojo:权威指南是市场上最好的Dojo书籍

我还想从Dojo大师那里得到一些提示和指点


干杯

首先要做的是熟悉Dojo对象模型。JavaScript没有类系统,因此DojoToolkit创建了一种“按约定”的对象模型,该模型工作得相当好,但与Java中的工作方式非常不同

我建议您熟悉它的原因是,当您开始遇到问题时,您可以深入了解代码库。在过去的一年中,可用的文档有了很大的改进,但是我发现自己必须通过准确地学习Dojo代码是如何工作的来解决代码中的一个bug

另一个技巧是使用定制构建功能,一旦应用程序准备就绪,它将显著提高性能

作为DHTML编程的一般技巧,请使用firebug(Firefox的插件)。它允许JavaScript调试、DOM检查、HTML实时编辑等等。当我在DHTML工作时,我已经完全依赖它了


祝你好运

请确保您阅读的文档与尽可能最新的版本相关,因为Dojo体系结构中的许多内容变化非常快

另外,了解一些Dojo或Dijit小部件是如何使用的一个很好的方法是查看测试的源代码——例如,测试的文档很差,但测试显示了很多用例和配置

Sitepen是一个很好的资源

另外,请阅读
Deferred
(和
DeferredList
),以及
hitch()
——Dojo的两个极其灵活和强大的功能。SitePen上有一篇关于消除延迟的s的神秘性的文章

看看吧,Dojo扩展的集合,它使一些事情变得更加方便,或者为语言添加了一些巧妙的功能。它是由Dojo的核心作者之一制作的,所以它相当可靠。它甚至在框架中引入了一些jQuery的细节


还有一些事情:看看数据存储,它们非常有用,而且是处理Ajax的一种更干净的方法。DojoX也有很多不错的组件,请记住,DojoX的范围在于组件的文档化程度或实验性程度。了解dojo.byId和
dijit.byId
之间的区别,以及HTML属性
id
jsId
(同样,Sitepen有一篇文章)。

当我开始编写小部件时,我发现了以下几点:

[了解dojoAttachPoint、dojoAttachEvent、containerNode和widgitsInTemplate的功能][1]

抓紧关闭,

把头转过去

全面了解ItemFileReadStore、ItemFileWriteStore和stores

您可以将存储视为结果集(某种程度上),也可以将它们绑定到小部件

有了这些主要概念,您可以开始组合一些引人注目的应用程序

一般来说,我所做的是围绕服务调用构建一个JavaScript facade,然后通过在facade中附加第一个回调将响应拖放到一个存储中,该回调将结果转换为一个存储,然后返回它。这使我不必将我的服务硬绑定到Dojo构造(这样我就可以支持mobile等),同时也可以以数据感知小部件所期望的格式从facade重新调整数据


同样,如果您正在进行Java服务开发,您也希望了解JAX-RS。我最初使用JSON-RPC,后来成为JABS-ORB,但在使用JAX-RS之后,我更喜欢它,因为它与JPA-EJB和JAXB集成得很好。

首先阅读如何在应用程序中配置Dojo。试着理解Dojo的基本结构,就像我们编写dijit.form.Button或dijit/form/Button一样,这意味着Button.js驻留在dijit/form文件夹中。尝试理解Dojo的require、define和declare模块。这足以启动Dojo工具包


非常重要的事实是,请使用Dojo进行您自己的示例项目

如果您刚刚开始使用AJAX,并且不需要DOJO,那么您可能需要切换到jQuery。它有一个非常简单的API和一个非常小的学习曲线。谢谢,jconlin,但我没有选择。我发现很多在后端使用Java的组就像在前端使用Dojo一样。不知道为什么。Dojo确实有一条更陡的曲线,但它添加了许多类似于jQuery的语法。我喜欢pubsub的东西。我不知道当时是什么样子,但是Dojo AJAX现在非常好:Donal:是有一个特定于Dojo的“Dojo对象模型”,还是DOM-Document对象模型?还是我遗漏了什么?它是特定于Dojo的,用他们自己的话来说,“模拟”类系统的函数。您可以在这里阅读更多关于它的内容,这里没有大写的“Dojo对象模型”这样的东西。Dojo采用了伪经典的面向对象方法,也就是说,您可以编写类。不要误解它。谢谢;这一切都非常有帮助。请注意,延迟有助于使异步进程(如Ajax调用)同步运行,比如在继续下一步之前必须等待一些Ajax调用返回。