如何评价dojo这个前端框架
1.由于Dojo的每一个版本变化都比较大。 2.Dojo更新都比较快,基本上是1--2个月一个新的版本。 3.Dojo有很多不完善的地方,在实际应用中如果自己不修改代码,要实现自己想要的全部功能是不可能的。
和 YUI、ExtJS 差不多,整体思想已经过时了,唯一的好处是作为大而全类型的框架,现成的东西很多。如果你需要的只是用一些现成的 UI 组件快速搞个能用的东西,勉强可以用用;但一旦要自己开发复杂的组件,就完全比不过新生代框架了。
特斯拉正在开发Dojo项目 可实现完全自动驾驶
易车讯 近日,特斯拉首席执行官埃隆马斯克(Elon Musk)在自动驾驶投资者日上表示,特斯拉正在开发Dojo项目,该项目是标记可视化数据的关键,将可实现完全自动驾驶。Dojo项目是标记可视化数据的关键,而目前标记此类数据仍是一项非常困难的任务。据悉,特斯拉Dojo计算机会自己学习并且训练AI。简单地说,特斯拉Dojo是一台超级强大的训练计算机,可以训练多个AI,最终的目的是让汽车实现自动驾驶。马斯克表示,Dojo项目的目标是接收大量图像和视频数据,并在无人监督的情况下自行学习。Dojo计算机能够利用大量视频文件,在无人监督情况下自行学习,同时尝试识别其中的对象。从视频中学习以训练AI比从图像中学习效果更好,因为视频能够更近距离地捕捉现实,而且还能够提供场景背景。此前,埃隆马斯克就表示,特斯拉将在今年实现L5级的自动驾驶功能,而Dojo项目将是其中重要的一环。有关于更多特斯拉自动驾驶的报道,请持续关注易车。
求大牛 告知 这个dojo是啥 读取的又是啥
Dojo是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets,Burstlib,f(m)),这也是为什么叫它a"unified"toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些,长期存在、历史问题(historical
problems with DHTML)。跨浏览器问题。
可以加载指定函数到window.load时执行,好处就是可以很方便的在window.load时执行多个函数
UsageExample:
dojo.addOnLoad(init);//init是一个函数
dojo.addOnLoad(myObject,init);//init是myObject对象的一个方法
dojo.require
如果你想调用一个模块的对象的时候,你应该首先用dojo.require来请求这个模块,dojo会根据你的请求自动取得相应的js文件,并加载到内存中,这样你才能调用或创建其中的对象
dojo会自动维护已加载的模块列表,所以是不会重复加载模块的
UsageExample:
dojo.require("dojo.event");
dojo.requireIf=dojo.requireAfterIf
可以根据指定的条件来决定是否加载指定的模块
UsageExample:
dojo.requireIf(dojo.htmle,"dojo.html");//如果dojo.html.为true,才会加载dojo.html模块
dojo.provide
除非你要开发自己的模块,不然是用不到这个方法的
dojo如何使用
dojo可以说是现在最好的ajax框架了,我也在学习中,你如果单纯的问dojo如何使用,可没办法回答你,因为这是一个体系结构,不是一句话两句话说得清楚的,你可以在网上搜索一本《精通Dojo(中文版).pdf》电子版的,讲的很详细,把dojo的精髓都能讲到,不过要有很扎实的javascript知识。http://blog.csdn.net/dojotoolkit,这是一个在csdn上开的博客,讲的比较好。http://www.ibm.com/developerworks/cn/web/wa-lo-dojointro1/index.html#N100DE,这个是IBM developerworks里面的文章,类似的也有很多,应该可以帮到你。
为什么使用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。