dojo开发
A. web应用开发中利用dojo实现异步通讯的问题
js是语言 == 木头
ajax是javascript向服务端发异步消息的技术(属于js语言功能)
dojo、jquery都是js的集成工具包(都是js),即类库,当然类库都有自己的特点,但功能上大致相同 = 做成的一堆桌面、桌腿等等
这些js类库都集成有ajax功能
要实现一个js应用 = 做一个桌子
不用类库 = 自己造 桌面、桌腿,再组装
用类库 = 现成组装
对于异步通信:
前面说ajax是向服务端发消息,再加上 服务端(服务器应用程序asp、php、java等)接收、处理并返回给js(PS:其实大家所说的ajax是指这整个过程)
所以回答你的问题,利于dojo(就是利于dojo里的ajax方法)可以实现异步通信(现成组装)
当然你用原生的js(ajax方法)照样能实现(自己造 桌面、桌腿)
B. Dojo开发时需要引入那些文件
<!-- 引入dojo样式文件 -->
<style type="text/css">
@import "dijit/themes/tundra/tundra.css";
@import "dojo/resources/dojo.css";、
</style>
<!-- 引入dojo包 -->
<script type="text/javascript" src="dojo/dojo.js" ></script>
引入这三个文件就行了。
C. 如何评价dojo这个前端框架
1.由于Dojo的每一个版本变化都比较大。 2.Dojo更新都比较快,基本上是1--2个月一个新的版本。 3.Dojo有很多不完善的地方,在实际应用中如果自己不修改代码,要实现自己想要的全部功能是不可能的。
和 YUI、ExtJS 差不多,整体思想已经过时了,唯一的好处是作为大而全类型的框架,现成的东西很多。如果你需要的只是用一些现成的 UI 组件快速搞个能用的东西,勉强可以用用;但一旦要自己开发复杂的组件,就完全比不过新生代框架了。
D. Dojo到底有什么好用的,一大堆需要引用的js文件,不臃肿吗!
你用的dojo都是老版本了, 现在都出1.10了, 在dojo1.8已后都已经采用了AMD模式, 做到了按需加载, 并dojo本身属于企业级应用的JS框架,为开发者提供大量UI、Tool、Ajax等类库,可以使开发者不用关注浏览器兼容性问题来开发系统。
本身dojo的JS编程方式比较OO, 深入学习后, 你会发现你可以通过dojo来定义属于自己的UI库、模块库等,还是比较爽的。
缺点就是对HTML的侵入性比较严重, 目前还没有看到MVVM的加入, 学习资料很少很难入门。
E. dojo这个前端框架为什么很少听人提起到
1.由于Dojo的每一个版本变化都比较大。
2.Dojo更新都比较快,基本上是1--2个月一个新的版本。
3.Dojo有很多不完善的地方,在实际应用中如果自己不修改代码,要实现自己想要的全部功能是不可能的。
建议开发框架如下 root -dojo -dijit -dojox _padesk _dojo _dijit _dojox _util 也就是新建一个目录padesk(示例,可以自己选),在padesk目录下新建dojo、dijit、dojox目录,把自己需要修改后才能使用的组件放到相应的目录下: 例如: dijit.form.Button 我们想在这个基础上定制一个只显示Icon的Button,就可以定义为padesk.dijit.form.iconButton 这样的结构,只要相应的模组(甚至只是相应的函数)没有变化,我们把Padesk文件夹拷贝到新版本的dojo中,就马上可以利用。节省了在原来代码上修改的的许多周折。
F. 哪位朋友熟练 Dojo ,我公司开发新的项目要用这个,能给我一些学习的技巧和经验么
其实就是一项异步交互技术,可以做到局部刷新,增强用户体验效果,比如网络或GOOGLE中输入搜索词,下边就出来提示要搜索的内容,这就是AJAX技术实现的,还有GOOGLE地图,等等。
可以看一下下边的详述。
国内通常的读音为“阿贾克斯”和阿贾克斯足球队读音一样。Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于网页的Web应用到基于数据的应用的转换。在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。 虽然大部分开发人员在过去使用过XMLHttp或者使用Iframe来加载数据,但仅到现在我们才看到传统的开发人员和公司开始采用这些技术。就像新的编程语言或模型伴随着更多的痛苦,开发人员需要学习新的技巧及如何最好利用这些新技术。
AJAX模式
许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的SOA。AJAX开发人员拥有一个完整的系统架构知识。同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。
AJAX开发与传统的CS开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。
综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方式。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。
时刻想着用户
AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应用的规则正在被重写;因此开发人员必须更注重用户。现在用户已经逐渐习惯如何使用Web应用了。例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况。因此用户需要重新体验按钮点击的响应了。
可用性是AJAX令人激动的地方而且已经产生了几种新颖的技术。其中最引人注目的是一种称为“黄色隐出”的技术,他在数据更新之前时将用户界面变为黄色,更新完成后立刻恢复原来的颜色。AJAX开发人员将用户从Web应用的负载中解放出来;小心地利用AJAX提供的丰富接口,不久桌面开发人员会发现AJAX是他们的方向。
几种工具和技术
随着AJAX迅速地引人注目起来,我想开发人员对这种技术的期待也迅速地增加。就像任何新技术,AJAX的兴旺也需要一整个开发工具/编程语言及相关技术系统来支撑。
JavaScript
如名字所示AJAX的概念中最重要而最被忽视的是他也是一种JavaScript编程语言。JavaScript是一种粘合剂使AJAX应用的各部分集成在一起。在大部分时间,JavaScript通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免。这种观点来来自以前编写JavaScript代码的经历:繁杂而又易出错的语言。类似的,他也被认为将应用逻辑任意地散布在服务端和客户端中,这使得问题很难被发现而且代码很难重用。在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上。
XMLHttpRequest
XMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端,但并不会打断用户当前的操作。使用XMLHttpRequest传送的数据可以是任何格式,虽然从名字上建议是XML格式的数据。
开发人员应该已经熟悉了许多其他XML相关的技术。XPath可以访问XML文档中的数据,但理解XML DOM是必须的。类似的,XSLT是最简单而快速的从XML数据生成HTML或XML的方式。许多开发人员已经熟悉Xpath和XSLT,因此AJAX选择XML作为数据交换格式有意义的。XSLT可以被用在客户端和服务端,他能够减少大量的用JavaScript编写的应用逻辑。
CSS
为了正确的浏览AJAX应用,CSS是一种AJAX开发人员所需要的重要武器。CSS提供了从内容中分离应用样式和设计的机制。虽然CSS在AJAX应用中扮演至关重要的角色,但他也是构建创建跨浏览器应用的一大阻碍,因为不同的浏览器厂商支持各种不同的CSS级别。
服务器端
但不像在客户端,在服务端AJAX应用还是使用建立在如Java,.Net和PHP语言基础上机制;并没有改变这个领域中的主要方式。
既然如此,我们对Ruby o n Rails框架的兴趣也就迅速增加了。在一年多前,Ruby o n Rails已经吸引了大量开发人员基于其强大功能来构建Web和AJAX应用。虽然目前还有很多快速应用开发工具存在,Ruby o n Rails看起来已经储备了简化构建AJAX应用的能力。
开发工具
在实际构建AJAX应用中,你需要的不只是文本编辑器。既然是JavaScript非编译的,他可以容易地编写和运行在浏览器中;然而,许多工具提供了有用的扩展如语法高亮和智能完成。
不同的IDE提供了对JavaScript支持的不同等级。来自JetBrains的IntelliJ IDEA是一个用来JavaScript开发的更好的IDE,虽然许多开发人员也喜欢Microsoft’s Visual Studio产品(允诺会在最新的版本中改善对AJAX的支持)。Eclipse包含了两个免费的JavaScript编辑器插件和一个商业的来自ActiveStat的Komodo IDE。
另一个JavaScript和AJAX开发中的问题是调试困难。不同的浏览器提供不同的通常是隐藏的运行时错误信息,而JavaScript的缺陷如双重变量赋值(通常是由于缺少数据类型)使得调试更加困难。在AJAX的开发中,调试就更复杂了,因为其需要标识究竟是客户端还是服务端产生的错误。在过去,JavaScript调试的方法是删除所有代码然后一行行的增加直到错误出现。现在,更多开发人员回到为IE准备的Microsoft Script Debugger和为Mozilla浏览器准备的Venkman。
浏览器兼容性
JavaScript编程的最大问题来自不同的浏览器对各种技术和标准的支持。构建一个运行在不同浏览器(如IE和火狐)是一个困难的任务。因此几种AJAX JavaScript框架或者生成基于服务端逻辑或标记库的JavaScript,或者提供符合跨浏览器AJAX开发的客户端JavaScript库。一些流行的框架包括:AJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.
这些框架给开发人员更多的空间使得他们不需要担心跨浏览器的问题。虽然这些框架提升了开发人员构建应用的能力,但由于厂商已经开发了更细节的用户界面的打包组件解决方案,因此在AJAX组件市场中需要考虑一些其他因素。例如提供通用用户界面的组件如组合框和数据栅格的几个厂商,都可以被用来在应用中创建良好的通过类似电子数据表方式来查看和编辑数据的体验。但这些组件不仅是封装了组件的用户界面而且包括与服务端数据的通讯方式,这些组件通常使用基于标记方式来实现如ASP.Net或JSF控件。
展望
最近IE和火狐之间的浏览器之争变得火热起来,因此AJAX开发人员需要足够敏捷的作出反应。关键点在一些问题如CSS或XML,虽然各种浏览器形成采用最新标准的不同阵营(如Mozilla拥抱SVG和E4X标准及在最新火狐BETA版本中使用XUL,而微软使用自己的XAML技术)。所有这些技术代表当前AJAX主流JavaScript和XML的市场方向改变。
总的来说,AJAX开发人员必须尽快地跟进最新的技术并利用高产的工具集。成功的AJAX开发人员还需要留心他们的使用者以避免将任何问题扩大化。并且AJAX开发人员还需要持续地创新来创建增强Web应用易用性的新方法。
G. dojo是什么
1.dojo是一款javascript框架,提供很多javascript UI, 2. dojo的程序支持,正常来讲我们都是做web工程的时候用到,要用到dojo的源文件包,如果你javascript可以的话,可以直接参考里面的源码,对代码进行分析,如果只是用里面提供的UI类创建自己的DOM,这些可以很快上手。
3.配置dojo,原则上是只要能正确把 使用<script src='[dojoroot]/dojo/dojo.js'>放入你的web page 中 就可以。
我使用过java做web开发,是这样配置的,可以帮助理解下,我以tomcat容器为例,使用eclipse环境开发。首先放置 dojo包至你的web容器重 即 ,【tomcat root】/webapps 下,然后在eclipse中创建web app project,将你的web工程与你的web容器关联,这时候可以在你的index.jsp中使用dojo的东西做开发了,别忘记加 <scriipt src = [dojoroot]/dojo/dojo.js>至你的index.jsp中。使用dojo开发的细节,你要自己参考一下相关的东西了
H. 为什么使用Dojo toolkit的十大原因
最强大但是使用量却大大低于预期的Javascript工具类库肯定是:Dojo Tookkit。几乎所有的javascript框架或者类库都许诺你可以实现任何功能,但是Dojo是最具有此类话语权的类库。在这篇文章中,我们将从十个不同的角度来分享,为什么你应该在你的web项目中开始使用Dojo toolkit。
原因一:模块化和AMD模块加载机制
随着web技术的发展,客户端的javascript越来越复杂,为了更好,更快运行我们的js应用,我们需要模块化我们的程序。不使用异步加载的日子应该结束了。Dojo toolkit一直都引以骄傲他们的模块化设计,使用dojo.require来动态的加载页面资源。 虽然有一个跨域选项是异步的饿,缺省的加载javascript资源的方法是同步的。
Dojo已经迁移到了异步加载器上,由Rawld Gill开发,可以方便的异步加载所有资源,很大程度的提高了速度。
原因二:使用dojo/declare来实现Class和扩展性
javascript并不是真正的提供class系统,而Dojo toolkit通过dojo/declare提供了一个类似class继承机制。declare在整个框架中都被使用,所以开发人员可以:
剪切或者删除重复的代码
使用“混合”方式来在不同class中共享功能
很简单的扩展已存在的class用来扩展自定义
不同项目中分享模块代码
在出现bug的Dojo class中安全的创建混合的class
Dojo的class系统使用原型继承,允许原型(prototype)被继承,这样子class可以像父class一样强大。
原因三:基于方面(Aspects)和“方法到方法的事件”
Aspects是高级web开发力最强大和必要的特性。Dojo toolkit提供了很多年这样的相关功能。允许你不使用传统的click,mouseover和keyup来触发功能。
允能够让你在触发function A之后或者之前触发function B 。你可以将方法链接起来,是不是很棒!
原因四:Deferreds和统一的AJAX传输
Deferreds是基于对象的异步操作的表达方式,允许异步操作对象可以方便的从一个地方传递到另外一个地方。jQuery最近的最重要的添加就是Deferred。很巧合的是,Dojo团队已经实现了。Dojo toolkit几年前已经添加了这个特性,使用它来简化AJAX高级操作,动画及其其它。
除了最前面这里的Deferred对象,Dojo也在XMLHTTPRequest之外首次添加了几个IO处理方法,包括:window.name封装,AJAX文件上传的dojo/io/iframe及其其它。那么什么时候使用Deferredd对象呢?无论什么时候只要一个异步的AJAX操作发生!Deferred对象都会返回XHR请求,dojo/io请求,动画和其它!
原因五:Dijit UI framework
毫无疑问,Dojo toolkit相比其它框架最大的优势在于Dijit UI框架。这个和其它工具吹嘘的完全不同:
完整,完整的支持本地化
完整的accessiblity
先进的布局组件能够帮助你解决100%高度元素,创建自定义的分割和布局修改
内建的表单验证和强化的用户体验
很多主题,最新的叫"claro"
LESS文件自定义主题
非常模块化的代码,允许自定义和扩展
原因六:Dojo Mobile
可以这么说,基本上每一个web问题,dojo都有一个解决方案,Dojo toolkit对于移动客户端的解决方案就是dojox/mobile,这个类库在我们以前的dojo移动开发文章中我们也牛刀小试了一把。如果你想看看dojox/mobile开发的UI界面,请点击这里:在线演示,dojox/mobile主要特性如下:
自动探测设备类型
拥有iOS,Andriod,Blackberry和common这四种主题
mobile表单组件
布局组件和面板
支持桌面,允许简单的debug
原因七:GFX和图表
CSS动画是不错的视觉工具,既是动画图片,同时也是灵活和强大的矢量图形创建和管理工具。最流行的客户端的矢量图形生成工具一直是Raphael JS,但是Dojo toolkit的GFX类库毫无疑问更将的强大。GFX可以用来配置SVG,VML,Silverlight,Canvas和webGL格式的矢量图形。提供了一个健壮的封装来创建不同的矢量图片形状(线状图等等),包括:
改变大小,旋转和偏转
动画填入,拉直等属性
添加线或者圆圈图形到指定图形中
监听和响应鼠标属性
组合图形并且更好的去管理
原因八:SitePen dgrid
Sitepen,Dojo toolkit创始人Dylan Schiemann的javascript咨询公司,打算替换Dojox的华而不实的Grid widget,使用更快,可扩展并且可编辑的Grid组件,主要特性如下:
支持不同的主题,配置简单
支持移动
行可排序
允许“滞后加载”grid数据
支持树状的Grid
使用Dijit widget支持可编辑的Grid
可扩展,支持列宽改变,拖放支持和分页,及其其它
原因九:DOH测试框架
测试对于我们来说非常重要,特别是对于客户端而非服务器端的程序来说。随着不同的浏览器的出现,客户端的互动测试成为一个必须的内容和步骤。Dojo toolkit提供了自己的测试框架。别名DOH(Dojo objective Harness)。提供了每一个Dojo toolkit版本的下载
原因十:Dojo编译流程
当一个web应用准备部署时,对于创建一个压缩版的javascript对于加载速度和优化来说非常有必要。这有效的减少了请求次数,并且缩短了下载时间。Dojo的编译分析Define将调用并且检测依赖关系。使用Dojo toolkit编译流程,你需要创建一个build profile。
I. 前端开发有哪些框架要学的比如dojo什么的
jquery 通了这一个,拿来吃饭是没有问题了,
想要高端的话,就再学习一下前端的MVC框架,像backbone angular 等等,
再高端点就弄服务器node.js