Hello World! 的时间到了,在你所学过的众多语言中,哪个不是从此学起的呢?但在此之前,我们要先构建一个开发环境,如同刚开始学习Java的时候,还是需要我们先安装JDK、配置好环境变量等等,HelloWorld才会乖乖的显示在命令行上。

 
    对于脚本类语言,开发环境就是文本编辑器+语言包(dojo.js),对于学习JavaScript来说更简单,只需要有主流浏览器作为支持就够了,浏览器就能来解析它。对于Dojo的开发环境,有以下几类:
 

介绍几种搭建Dojo环境的方法

下载Dojo文件

     在http://dojotoolkit.org/download 下载dojo最新版,下载的正式版中不包含构建工具,构建工具可以从源码中获取。解压之后的文件会生成一个命名形式为dojo-release-x.y.z的文件夹,其中,“x”、“y”和“z”分别对应某个特定版本的主版本号、小版本号和补丁编号,并且可以看到内部文件夹结构分类就如我们上一篇《Dojo学习笔记一:认识Dojo》中介绍的哪几个分类一致:
Base(dojo/dojo.js) 、Core(dojo)、Dijit(dijit)、DojoX(dojox)和Util(util)。
 

CDN方式

      CDN就是Content  Delivery  Network,内容分发网络。说简单就是通过link网络上的dojo资源包来使用Dojo工具箱。常用的CDN有:

Google CDN :

     <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js"></script>

Yandex CDN (Europe) :

     <script src="//yandex.st/dojo/1.8.3/dojo/dojo.js"></script>
 

构建内部CDN

      通过构建本地CDN来减少加载外网CDN资源的时间。
      1.从官方下载发布版本的源码包:以 1.8.3 版本为例。
 
       2.解压缩包,并运行构建脚本 cd dojo-release-1.8.3-src\util\buildscripts build profile=baseplus action=release optimize=shrinksafe version=1.8.3 loader=xdomain xdDojoPath=your/dojo/cdn/path
 
参数 描述
profile 其值对应于util\buildscripts\profiles目录下的文件名
action clean、relase、help
version 一般是根据下载的dojo版本而定
optimize comments:删除注释、shrinksafe:强力压缩、shrinksafe.keepLines:行压缩、packer:打包成单个文件
loader default:不跨域、xdomain:跨域
xdDojoPath CDN中的服务器上url路径
 
      3.当命令执行结束,并将其部署到服务器上(url映射下),就可以像引用外部CDN文件一样使用它了。
 
     准备好Dojo开发环境之后,可以开始对Dojo几大组件的学习了。接下来,要学习一些Dojo中不同于原生JavaScript中的方法和对象。

介绍几种搭建Dojo环境的方法的更多相关文章

  1. 下面我会介绍几种轻轻松松访问Google的方法

    好人一生平安的大招 Google在大陆已经封了差不多有20天   访问是极其的困难 下面我会介绍几种轻轻松松访问Google的方法 首先 你需要个可靠的hosts  比如 https://git.os ...

  2. 一种获取spring环境上下文方法:SpringContextUtil

    获得spring里注册Bean的有好几种方法,这里介绍一种比较简单的方法: import org.springframework.beans.BeansException; import org.sp ...

  3. 介绍一种css水平垂直居中的方法(非常好用!)

    这次介绍一下一个水平垂直居中的css方法,这个方法可以说是百试百灵,废话不多说,直接附上代码: html,body{ width:100%; height:100%; } 你需要居中的元素{ posi ...

  4. 【转】STM32: 一种计算CPU使用率的方法及其实现原理

    1  前言出于性能方面的考虑,有的时候,我们希望知道CPU的使用率为多少,进而判断此CPU的负载情况和对于当前运行环境是否足够“胜任”.本文将介绍一种计算CPU占有率的方法以及其实现原理. 2  移植 ...

  5. Linux下几种另类创建文件之方法

    以前我们用编辑器例如vi来新建文件,下面介绍几种另类生成文件的方法,多用在备份和测试上. 创建文件的方法: 1.echo 命令    #echo "set bell"  >& ...

  6. 两种读取.xml文件的方法

    这里介绍两种读取配置文件(.xml)的方法:XmlDocument及Linq to xml 首先简单创建一个配置文件: <?xml version="1.0" encodin ...

  7. 介绍ArcGIS中各种数据的打开方法——mxd(地图文档)

    1.加载地图文档 在ArcGIS中,以mxd作为扩展名的文件叫地图文档. 地图文档中只是包含图层的引用,即存储当前地图的图层路径.符号.状态.修饰等信息,并不存储真实的数据层. ArcGIS Map中 ...

  8. 介绍ArcGIS中各种数据的打开方法——tin(栅格文件)

    4.加载栅格文件 栅格数据是GIS中重要的数据源之一,如卫星图像.扫描的地图.照片等. 栅格数据常见的格式有Bmp.Tiff.Jpg.Grid等. 添加栅格数据主要使用Rasterlayer 组件类, ...

  9. Docker之使用Docker-compose搭建LNMP环境

    之前有随笔介绍使用Docker-compose搭建LNMP环境(centos6 php5.6) https://www.cnblogs.com/minseo/p/10146982.html 本文介绍D ...

随机推荐

  1. OC自定义文档头部注释

    1.创建文件 IDETemplateMacros.plist 2.向文件里添加内容 具体内容 // 文 件 名:___FILENAME___ // // 版权所有:___COPYRIGHT___ // ...

  2. SiriShortCut模型建立及数据交互逻辑

    1.模型数据需求 意图: 手机号 密码 网关ID 打开该情景的命令 情景号 情景名 情景背景图 添加该意图时的 token值 主程序登陆共享数据 手机号 token值 2.操作逻辑 1.意图被唤起 获 ...

  3. Timer(定时器)

    默认情况下,在每个采样器之前没有任何延时,这样不能很好的模拟现实生活中人们访问网页,因为现实生活中人们点击一个请求后,会有一定的时间,然后再点击下一个请求,JMeter提供了定时器来模拟这种行为. 定 ...

  4. 【微服务】之七:轻松搞定SpringCloud微服务-API权限控制

    权限控制,是一个系统当中必须的重要功能.张三只能访问输入张三的特定功能,李四不能访问属于赵六的特定菜单.这就要求对整个体系做一个完善的权限控制体系.该体系应该具备针区分用户.权限.角色等各种必须的功能 ...

  5. The server of Apache (二)——apache服务客户端验证

    一.确定网站名称.IP地址 地址为: 192.168.1.1   域名为: www.benet.com 二.配置可用的DNS域名服务或者修改本地hosts记录 ~] # vim /etc/hosts ...

  6. C语言学习总结(1)——结构体

      一,什么是结构体    我们知道数组(Array),它是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄 ...

  7. Java getMethod类型参数

    public class DynamicInvoker { public static void main(String[] args) { // TODO Auto-generated method ...

  8. vue-persist 为 vuex 持久化!!

    npm install --save vuex-persist import VuexPersistence from 'vuex-persist' const vuexLocal = new Vue ...

  9. Wannafly挑战赛26-F. msc的棋盘(模型转化+dp)及一类特殊的网络流问题

    题目链接 https://www.nowcoder.com/acm/contest/212/F 题解 我们先考虑如果已知了数组 \(\{a_i\}\) 和 \(\{b_i\}\),如何判断其是否合法. ...

  10. Luogu P1108 低价购买 DP

    第一问求最长下降子序列,不提: 第二问:借鉴了最短路的方法??? 我们求出来了每个位置的最长下降子序列的长度,那么刻意这样这样转移 if f[i]==f[j]+1&&a[i]<a ...