Dojo QuickStart 快速入门教程 (2) 基本框架

下载库

首先,下载 Dojo 库:http://www.dojotoolkit.org/downloads

放了方便测试,我将文件将解压到 Web Server 的 "js/dojotoolkit" 文件夹中,如果你愿意,也可以缀上版本号。最后的目录结构应该像下图这样:


明确 dojo.js 文件的路径非常重要。只要 dojo.js 能被正确装入页面,package system 会自动处理对相关模块的引用和依赖。

The Dojo Book,提供了大量的指南和教程,更深入的介绍了获得各种 dojo 不同版本的方式。

也可以从 Google 的公用库引入脚本,如下:http://ajax.googleapis.com/ajax/libs/dojo/1.3.1/dojo/dojo.xd.js

基本框架
下面是一个 dojo 程序的基本框架:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"
>
<html>
    
<head>
        
<title>Dojo Toolkit Test Page</title>    
    
    
<!--  装入Dojo 基本库 -->
    
<script type="text/javascript" src="js/dojotoolkit/dojo/dojo.js"
        djConfig
="parseOnLoad:true, isDebug:true">
       </
script>
    
    
<script type="text/javascript">
    
/* 其他的脚本程序 */
    
</script>
    
    
<style type="text/css">
    
/* 样式表在这 */    
    
</style>  
  
    
</head>
    
<body><!-- 页面内容 -->
        
<h1 id="testHeading">Dojo 基本框架</h1>        
        
<div id="contentNode">
        
<p>一些内容</p>
    
</div>
    
</body>

</html>

 版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

 配置 Dojo 启动参数
dojo在装入时应该进行参数配置,两个最重要的参数是 parseOnLoad  isDebug 。第一个参数确定是否在页面装入时解析 dojo 组件和内置标签;第二参数打开或关闭调试信息。有两种配置方式:
第一种方式在 <script> 标签中配置,如下:

<script type="text/javascript" src="js/dojotoolkit/dojo/dojo.js"
    djConfig
="parseOnLoad:true, isDebug:true">
  </
script>

第二种方式在 dojo.js 装入之前,建立一个全局变量 djConfig,如下:

<script type="text/javascript">
    
var djConfig = {
        isDebug:
true,
        parseOnLoad:
true
    }
;
</script>
<script type="text/javascript" src="js/dojotoolkit/dojo/dojo.js"></script>

两种方式有同样的效果。


如何开始?
由于各种版本的浏览器对页面装入 "ready" 状态有不同的定义,所以 Dojo 提供了一个 dojo.addOnLoad  函数,程序从这里面开始,如下代码:

// 某个函数
    var init = function(){
        console.log("I run after the page is ready.");    
    };
        //ready 后运行上面的函数
    dojo.addOnLoad(init);
    
    // 这是另一种形式,用匿名函数
    dojo.addOnLoad(function(){
        console.log("I also run, but second. "); 
    });

重要提示:不要用 <body onLoad="someFunc"> 和 window.οnlοad=someFunc 开始你的函数,而应该使用 dojo.addOnLoad(someFunc)


更多
通过 dojo.require() 函数,package system 会自动装入所有你需要的代码。下面的例子将装入一个 Button 和一个 TitlePane,系统会自动找到他们的代码,如下:

dojo.require("dijit.form.Button");
    dojo.require(
"dijit.TitlePane");
    dojo.addOnLoad(
function(){
        dojo.byId(
"testHeading").innerHTML = "We're on our way!";
        console.log(
"onLoad fires after require() is done"); 
    }
);  

每个模块都有自己的 dojo.require() 参数,你可以从 Dijit API pages 找到他们


继续
在上面的例子中,我们第一次用了 dojo.byId() 函数,通过 id 来选择元素,并改变了元素的 innerHTML  值。后面我们将了解选择器。
将上面的代码放到框架中的“其他脚本程序”位置处,然后运行,如果你看到了: "We're on our way",恭喜!
如果出现了错误,可以从 FAQ 查找常见的错误信息。


//==========================================


本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2009/05/14/1456952.html,如需转载请自行联系原作者


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摊牌了,.NET开发者,准备赋能未来

hi&#xff0c;这里是桑小榆。一名.net开发&#xff0c;从19年毕业至今一直从事相关技术已近4年。发展至今&#xff0c;很有必要分享分享我的经历以及对于.net开发的看法和见解。篇幅有些长&#xff0c;无论你是学生&#xff0c;职业人&#xff0c;.NET开发者还是其他语言开发者…

BZOJ 3434 时空穿梭

题目链接&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id3434 题意&#xff1a; 思路&#xff1a; const int mod10007; const int N100005;int g[22][N]; int C[N][22],mou[N]; int h[22][N][13];int prime[N],cnt; int tag[N];void init() {int i,j;mou[1]1;f…

plex实现流媒体服务器_如何从Plex Media Server离线查看下载和同步媒体

plex实现流媒体服务器Streaming content from your Plex Media Server is great, but sometimes—like when you’re going to be offline or stuck with cruddy internet speeds while traveling—there’s no substitution for having a copy of the media stored on your de…

.NET Conf 2022 大会日程全曝光!!前沿、硬核、创意.....精彩就等你来!!

倒计时2天一场规模宏大&#xff0c;内容硬核&#xff0c;大咖齐聚的.NET 领域年度最大的盛会即将开幕.NET Conf 2022 12月3日-12月4日开源 安全 赋能诚邀您的加入立即扫码预约加入.NET年度盛宴&#xff01;&#xff01;.NET Conf China 2022.NET Conf China 2022是面向开发人员…

Linux下SSH远程连接断开后让程序继续运行解决办法

screen -S yourname #新建一个叫yourname的sessionscreen -r yourname #回到yourname这个sessionscreen -X -S [yourname # you want to kill]quit #删除无用的screen&#xff0c;使用时不用加中括号 screen -ls #列出当前所有的session screen -d yourname #远程detach某个ses…

wmi服务或wmi提供程序_什么是WMI提供程序主机(WmiPrvSE.exe),为什么使用那么多的CPU?...

wmi服务或wmi提供程序The WMI Provider Host process is an important part of Windows, and often runs in the background. It allows other applications on your computer to request information about your system. This process shouldn’t normally use many system re…

正在创建系统还原点_如何使Windows在启动时自动创建系统还原点

正在创建系统还原点By default, System Restore automatically creates a restore point once per week and also before major events like an app or driver installation. If you want even more protection, you can force Windows to create a restore point automaticall…

在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔

一、将爬取的数据保存到mysql数据库的代码&#xff08;已经能将爬取的数据保存到json文件&#xff09; &#xff08;1&#xff09;编辑Pipeline.py文件 &#xff08;2&#xff09;编辑settings.py文件 二、将数据保存至mysql数据库出现的问题 &#xff08;1&#xff09;在将数据…

十大经典排序算法(动图演示)

转自&#xff1a;https://www.cnblogs.com/onepixel/articles/7674659.html 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类&#xff1a; 非线性时间比较类排序&#xff1a;通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#xff0c…

如何实现 WPF 视频封面查看器

如何实现 WPF 视频封面查看器控件名&#xff1a;NineGridView作 者&#xff1a;WPFDevelopersOrg - 驚鏵原文链接[1]&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40&#xff1b;Visual Studio 2019;实现视频封面查看器NineGridView基于Grid实…

如何从Internet Explorer或Edge迁移到Chrome(以及为什么要迁移)

Google’s Chrome web browser is now more widely used than Microsoft’s Internet Explorer and Edge combined. If you haven’t switched to Chrome yet, here’s why you might want to–and how to quickly switch over. Google的Chrome网络浏览器现在的使用范围比Micro…

SQL中触发器的使用

创建触发器 是特殊的存储过程&#xff0c;自动执行&#xff0c;一般不要有返回值 类型&#xff1a; 1.后触发器 &#xff08;AFTER,FOR&#xff09;先执行对应语句&#xff0c;后执行触发器中的语句 2.前触发器 并没有真正的执行触发语句&#xff08;insert&#xff0c;update…

浏览器自动化操作标准--WebDriver

WebDriver是一个浏览器远程控制协议&#xff0c;是一个既定标准&#xff0c;它本身的内容非常丰富&#xff0c;本文不可能全部介绍&#xff0c;本文仅粗略带大家了解一下WebDriver的部分内容以及一个小的实际应用。想深入了解的请参考W3C文档WebDriver. 问题背景 开发的同学都知…

versa max_如何从Mac(和Vice Versa)打开或关闭iPhone的Safari选项卡

versa maxMany of us are familiar with this scenario: you’re looking something up on our iPhone, find exactly what we’re looking for, but then have to put our phone away to attend to something else. Later, while working on your Mac, you want to continue w…

【nuxtjs 指南】解决nuxtjs本地开发跨域和防止路由与api冲突问题

目前vue很火&#xff0c;大部分开发者把vue当做框架首选&#xff0c;然而spa是对搜素引擎很不友好&#xff0c;就会想到ssr&#xff0c;在vue社区nuxtjs完美的解决了这个问题&#xff0c;目前nuxt还不算太成熟&#xff0c;当然对于新手坑比较多&#xff0c;当我们确定使用了这个…

WPF效果第二百零五篇之自定义导航控件

前面摸索了一下会简单玩耍自定义控件了;今天再次分享一下N年前想要在GIS实现的一个导航控件;来看看最终实现的效果:1、先来看看前台xaml布局:2、后台路由事件就参照上一篇快捷方式3、关键依赖属性的回调触发路由事件:4、内部Arc的MouseDown事件触发路由事件:private void Arc_M…

mac命令行将输出写入文件_如何在Linux中使用命令行将PDF文件转换为可编辑文本...

mac命令行将输出写入文件There are various reasons why you might want to convert a PDF file to editable text. Maybe you need to revise an old document and all you have is the PDF version of it. Converting PDF files in Windows is easy, but what if you’re usi…

Windows Socket和Linux Socket编程的区别

2019独角兽企业重金招聘Python工程师标准>>> 1、一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id1586 2、网络 socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理&…

使用 C# 开发的现代轻量级 Windows 文本编辑器

你好&#xff0c;这里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;实用的工具和组件&#xff0c;希望对您有用&#xff01;Notepads 是一个具有简约设计的现代化轻量级文本编辑器&#xff0c;在 github 上开源&#xff0c;由微软大佬 Jiaqi Liu 开发。开发背…

分布式压测系列之Jmeter4.0第一季

1&#xff09;Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具&#xff0c;apache旗下的开源软件&#xff0c;一开始是设计为web测试的软件&#xff0c;由于发展迅猛&#xff0c;现在可以压测许多协议比如&#xff1a;http、https、soap、ftp、database数据库、LDAP 轻量目…