Dojo入门Hello World!

二阶FLL辅助三阶PLL环路的代码解读 今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD 阅读详情

本文的目的是为Dojo的入门者提供一个起点。每一个步骤都是为了尽可能多的介绍Dojo,但也不可能非常详尽,描述的太详尽反而会把入门用户搞糊涂了。如果需要了解本文中提到的概念,请查看底部指向其他资源的链接。

入门要求

很明显,第一步是你需要Dojo!你可以从 http://dojotoolkit.org/downloads 下载最新的稳定版本.第二步,你需要一个Web服务器.无论是连网服务器或者是离线服务器,Linux、Windows或者是Mac ... 都没什么要紧的。Dojo JavaScript library 是可以可以直接在浏览器上运行的,但文中有一些 AJAX 案例 需要服务器的PHP或者ASP支持.

Dojo 和 Dijit 中的代码,运行在客户端浏览器的部分,是兼容 IE 6 - 7, Firefox 2, 和 Safari的.

Dojo的设置

首先,你需要在Web服务器上新建一个目录. 假设为HelloWorldTutorial. 然后在里面建立一个名称为 dojoroot 的目录. 最后, 使用压缩工具解压缩Dojo压缩包至 /HelloWorldTutorial/dojoroot目录. 完成后,效果如下:

debugging9.png

开始了

一旦设置好了以上的目录和文件结构, 我们就要为HTMl文件设置JavaScript标记了.看一下下面的代码:

<html>
<head>
<title>Dojo: Hello World! </title>
<!-- SECTION 1 -->
<style type="text/css">
@import "dojoroot/dijit/themes/tundra/tundra.css";
@import "dojoroot/dojo/resources/dojo.css"
</style>
<script type="text/javascript" src="dojoroot/dojo/dojo.js"
djConfig="parseOnLoad: true">
</script>
</head>
<body class="tundra">
</body>
</html>


正如上面看到的,这个页面只是一个标准的HTML页面框架,它包含了3个部分:

  • 两个CSS文件. 标记为 Tundra 的是案例中要用到的Dijit主题风格. 当然也可以选择其他的主题.
  • 在Head部分中的script 元素标签. 这个script 元素标签复杂加载Dojo的核心库,它为我们后面用到的Dojo函数提供接口支持.
  • 最后,把 tundra CSS 样式添加到 body 标签.

创建一个按钮

好了,我们开始这一激动人心的部分!在这个例子中,我们将会建立一个"Hello World!"的按钮部件.对这个例子,鼠标移出、鼠标经过、鼠标按下(mouseOut, mouseOver, and mouseDown) 这3种可视状态可以在一定程度上提升用户体验。

第一个步骤是告知Dojo加载适合的模组.在网页头部,在片段1下添加一个片段2,代码如下:

<!-- SECTION 2 -->
<script type="text/javascript">
// Load Dojo's code relating to the Button widget
dojo.require("dijit.form.Button");
</script>


dojo.require 这一行代码通知 Dojo 加载 Button(按钮) 部件. 如果你省略的这一行,在Dojo 加载的时候,Button(按钮)中添加的代码将会失效, 返回的结果是一个普通的HTML 按钮,而不是我们期待的.

添加以上一段代码后,在body片段中加入下列HTML代码:

<button dojoType="dijit.form.Button" id="helloButton">Hello World! </button>

这一行HTML代码中最重要的属性是通知Dojo ,按钮的dojoType属性是什么. dojoType 属性负责通知Dojo:在页面加载的时候怎样处理这个元素.在这个例子,我们使用了button这个HTMl元素,当然用 input 也是可以的 - 无论 dojoType 属性有多长,Dojo都是可以运行的.但是使用 input 是不值得的, 我们还必须通过额外增加标题属性,来设定button中要显示的文本.

设置部件(Widget)的事件

按钮已经做好了,但是当点击按钮的时候它会做什么呢?我们可以为button(按钮)设定一个点击事件( event handler), 但是这里有一种更高效的方法 - Dojo 事件系统!

最容易的方式是通过script标记为button附加一个事件.但这并不是随意的 script 标签 ... 它必须包含一个值为 dojo/method 的type属性, 例如:

<button dojoType="dijit.form.Button" id="helloButton">
Hello World!
<script type="dojo/method" event="onClick">
alert('You pressed the button');
</script>
</button>


真的很简单,是吧?把script放置在标签的内部,从感官上也好看得多.同时还可以在script中充分利用第2层DOM的事件. 这意味着你可以监测到 SHIFT 和 CTRL 键, 获取各种各样的事件属性,从而使HTML目录结构的事件处理上升到一个更高的境界. 如果你曾经使用过第二层事件,你会知道IE和 Firefox 中有不同的使用语法.在 Dojo中, 同样的函数可以运行在任何一个支持的浏览器上.真是十分强大!

从服务器读取数据

点击按钮弹出警告窗口不错的方法,但如果我们想从服务器上获取数据呢? 又一次,Dojo用一个简单的方法拯救了这个任务 - dojo.xhrGet. 顺便提及一下,这个部分的代码可以在附件中下载( 文件HelloWorld-Section5.html 和 response.txt )。

开始,我们需要一个回调函数( callback function )来处理服务器返回的数据.在头部(head标签)添加以下代码:

<script>
function helloCallback(data,ioArgs) {
alert(data);
}
function helloError(data, ioArgs) {
alert('Error when retrieving data from the server!');
}
</script>


函数中的两个参数(data, and ioArgs) 是非常重要的 - 一个都不能少! 第一个参数 (data) 包含了服务器返回的数据, 第二个参数包含了绑定的 Dojo I/O 对象. 我们现在主要看第一个参数.

第二步:将鼠标的点击连接到发起服务器请求. 要完成这一步, 修改以下代码:

<script type="dojo/method" event="onClick">
alert('You pressed the button');
</script>


修改后,代码如下:

<script type="dojo/method" event="onClick">
dojo.xhrGet({
url: 'response.txt',
load: helloCallback,
error: helloError
});
</script>


以上的代码主要是告诉Dojo去访问URl定义的网址路径,以及使用handler中定义的函数处理服务器返回的数据。

最后,我们在HelloWorld.html 所在的文件夹下新建一个文件 response.txt. 在这个文件中,写上 'Welcome to the Dojo Hello World Tutorial'.

现在,点击按钮,JavaScript alert窗口中显示的应该是 response.txt 文件中的文字.Dojo-很简单吧!

下面,我们尝试让这个服务器请求做一些更有意义的事.

用GET发送数据到服务器

从服务器获取静态的数据是不错的功能,但在真正的应用中并不是那么广泛. 所以,除了简单的从服务器获取数据,我们还可以给服务器发送数据. 在这个部分, 我们使用的是GET方法,下一部分使用的是POST方法.作为简单的参考,这部分的代码可以在附件中下载,文件名为 HelloWorld-Section6.html .服务端文件名是" HelloWorldResponseGET". 扩展名分别如下 ASP ('.asp'), PHP ('.php'), ColdFusion ('.cfm'), 或者是 Java ('.jsp').

首先, 在文件 HelloWorld.html 中 (例如:body),需要增加另外一个元素 - 一个 input 元素. 所以,把以下的代码:

<button dojoType="Button" widgetId="helloButton">
<script type="dojo/method" event="onClick">
dojo.xhrGet({
url: 'response.txt',
load: helloCallback,
error: helloError
});
</script>
</button>


修改为:

<button dojoType="dijit.form.Button" id="helloButton">
Hello World!
<script type="dojo/method" event="onClick">
dojo.xhrGet({
url: 'HelloWorldResponseGET.php',
load: helloCallback,
error: helloError,
content: {name: dojo.byId('name').value }
});
</script>
</button>
Please enter your name: <input type="text" id="name">


在继续进行之前 - 需要强调一下:dojo.xhrGET函数中的url属性指向的文件格式必须是你服务器支持的格式.

ASP 服务器: 'HelloWorldResponseGET.asp' ,
PHP 服务器: 'HelloWorldResponseGET.php' ,
ColdFusion 服务器: 'HelloWorldResponseGET.cfm' ,
Java 服务器 (JSP) : 'HelloWorldResponseGET.jsp' ,
Perl 服务器: 'HelloWorldResponseGET.pl' .
这些文件的代码在下面的部分中会提供,在附件中中也可以下载.

在上面的代码中,你会注意到dojo.xhrGet中引入了一个新的属性. 这个属性 - 内容 - 允许程序员以参数的形式发送任意的数据到服务器. 在这个例子中,我们使用的是GET方法, 服务器脚本通过参数'name'来获取传过来的值. 需要提一下,如果如果这个参数是另外一个名字(例如: 'myName'), 我们还需要把代码改成 (把':'左面的 'name' 改成 'myName' ):

content: {myName: dojo. byId ( 'name' ). value }


因为我们之前没用过,还需要提一下 dojo.byId('name').value. 非常简单, 这个调用是标准的 document.getElementById(..) 函数.

最后,如果你在文本框中输入你的名字,并点击 'Hello World' 按钮, 提示框会显示 'Hello , welcome to the world of Dojo!' ,还有你输入的名字.

这是服务器的代码. 有一些是可以在下面下载.

使用 PHP 服务器

<?php
/*
* HelloWorldResponseGET.php
* --------
*
* Print the name that is passed in the
* 'name' $_GET parameter in a sentence
*/

header ( 'Content-type: text/plain' );
print "Hello {$_GET['name']}, welcome to the world of Dojo!/n";
?>

使用ASP 服务器

<%
'
' HelloWorldResponseGET.asp
' --------
'
' Print the name that is passed in the
' 'name' GET parameter in a sentence
'
response. ContentType= "text/plain"
response. write ( "Hello " & request. querystring ( "name" ) & ", welcome to the world of Dojo!/n" )
%>

使用 ColdFusion 服务器

<!---
/*
* HelloWorldResponseGET.cfm
* --------
*
* Print the name that is passed in the
* 'name' GET parameter in a sentence
*/

--->
<cfsetting showDebugOutput= "No">
Hello, #url. name#, welcome to the world of Dojo!
</cfsetting>

使用 Java 服务器 (JSP)

<%
/*
' HelloWorldResponseGET.jsp
' --------
'
' Print the name that is passed in the
' 'name' GET parameter in a sentence
*/

response. setContentType ( "text/plain" );
%>
Hello <%= request. getParameter ( "name" ) %> , welcome to the world of Dojo!

使用 Perl 服务器

#! /usr/bin/perl
#
# ' HelloWorldResponseGET.pl
# '
--------
# '
# '
Print the name that is passed in the
# ' ' name ' GET parameter in a sentence
#
use strict;
use CGI;
my $cgi = CGI::new();
print $cgi->header(-type => "text/html; charset=utf-8");
print "Hello " . $cgi->param('
name ') . ", welcome to the world of Dojo!/n";

通过POST发送数据到服务器

使用 GET发送数据不错,但是有些时候,你需要使用Dojo来提升用户使用传统表单的用户体验。通常,Dojo有一种更好的处理方式. 再次, 这些文件的代码在下面的片段中, 在附件中也可以下载. 另外,跟上面一样,你同样要把 'url' 属性指向你服务器支持的文件格式.

首先, 我们还要把 HelloWorld.html 文件中body中的部分:

<br>
Please enter your name: <input type="text" id="name">


修改为:

<br>
<form id="myForm" method="POST">
Please enter your name: <input type="text" name="name">
</form>


接着我们需要把 dojo/method的代码:

<script type="dojo/method" event="onClick">
dojo.xhrGet({
url: 'HelloWorldResponseGET.php',
load: helloCallback,
error: helloError,
content: {name: dojo.byId('name').value }
});
</script>


修改为:

<script type="dojo/method" event="onClick">
// Don't forget to replace the value for 'url' with
// the value of appropriate file for your server
// (i.e. 'HelloWorldResponsePOST.asp') for an ASP server
dojo.xhrPost({
url: 'HelloWorldResponsePOST.php',
load: helloCallback,
error: helloError,
form: 'myForm'
});
</script>


就像我们前面代码显示的那样, 我们把 dojo.xhrGet 修改为 dojo.xhrPost. 我们删除了 'content' 属性,取而代之的是增加了一个新的属性 'form'. 它告知 dojo.xhrPost 函数要使用表单 'myForm' 作为数据的来源l.

最后,当你输入你的名字,点击 'Hello World!' 按钮的时候,提示信息会是 'Hello , welcome to the world of Dojo!' 和你的名字.

使用 PHP 服务器

<?php
/*
* HelloWorldResponsePOST.php
* --------
*
* Print the name that is passed in the
* 'name' $_POST parameter in a sentence
*/

header ( 'Content-type: text/plain' );
print "Hello {$_POST['name']}, welcome to the world of Dojo!/n";
?>

使用ASP 服务器

<%
'
' HelloWorldResponsePOST.asp
' --------
'
' Print the name that is passed in the
' 'name' $_POST parameter in a sentence
'
response. ContentType= "text/plain"
response. write ( "Hello " & request. form ( "name" ) & ", welcome to the world of Dojo!/n" )
%>

使用 ColdFusion 服务器

<!---
/*
* HelloWorldResponsePOST.cfm
* --------
*
* Print the name that is passed in the
* 'name' POST parameter in a sentence
*/

--->
<cfsetting showDebugOutput= "No">
Hello, #form. name#, welcome to the world of Dojo!
</cfsetting>

使用 Java 服务器 (JSP)

<%
/*
' HelloWorldResponsePOST.jsp
' --------
'
' Print the name that is passed in the
' 'name' POST parameter in a sentence
*/

response. setContentType ( "text/plain" );
%>
Hello <%= request. getParameter ( "name" ) %> , welcome to the world of Dojo!

使用 Perl 服务器

#! /usr/bin/perl
#
# ' HelloWorldResponsePOST.pl
# '
--------
# '
# '
Print the name that is passed in the
# ' ' name ' POST parameter in a sentence
#
use strict;
use CGI;
my $cgi = CGI::new();
print $cgi->header(-type => "text/html; charset=utf-8");
print "Hello " . $cgi->param('
name ') . ", welcome to the world of Dojo!/n";

原文地址:http://dojotoolkit.org/book/dojo-book-0-9/hello-world-tutorial


转载请表明译者:朱雄业
Camera Sensor接口协议全解析(六)聚焦onsemi HiSPi接口的技术突破与应用实践 摘要: Onsemi HiSPi是一种高速并行接口协议,专为高分辨率图像传感器设计,具备1600 Mbps传输速率、低功耗和高兼容性特点。通过对比DVP、MIPI CSI-2等主流协议,HiSPi在工业/医疗领域表现突出,支持动态功耗控制、多ROI和CRC校验。其创新架构包含多PHY设计,提供分组SP、流SP等多种工作模式,满足灵活传输需求。实际应用中,HiSPi在PCB缺陷检测(5μm精度)和液晶面板检测(0.3% Mura检出率)等场景展现卓越性能,成为高速成像领域的关键技术。 阅读详情

相关推荐

Dojo 学习笔记入门篇:第一个 Dojo 示例(使用 Dojo JS)

这是一个简单的 Dojo 示例,它演示了如何使用 Dojo JS 创建一个基本的 Web 应用程序。你可以从 Dojo 的官方网站下载最新版本的 Dojo,然后将其引入到你的 HTML 文件中。假设你已经完成了这一步骤,我们可以开始编写我们的第一个 Dojo 示例了。在本篇学习笔记中,我们将介绍如何使用 Dojo JS 创建一个简单的示例。Dojo 是一个功能强大且灵活的 JavaScript 框架,它提供了许多工具和功能,帮助开发人员构建现代化的 Web 应用程序。这是我们将在示例中使用的输出容器。

TechNovaX的博客 402

dojo入门资料

内容很丰富,给有需要的人,壮大dojo社区

dojo入门系列教程.rar

dojo入门系列教程,包含入门简介,在javascript基础上介绍dojo的语法特色,ajax的dojo包装---xhr框架的编程要点, Dojo 事件机制.以及对dojo最具特色的web UI设计的全面介绍.

dojo入门教程 -简介

网上关于dojo简介的也不少,发现有一篇博文写到不错,比较适合初学dojo的童鞋们。所以,直接转载过来了,博主见到了见谅哦。嘿嘿,下面共同学习一下吧。 转自:http://www.lezhu99.com/802.html Dojo是一个功能强大的JavaScript库的集合,可以为许多特性提供简单的API。其中的一个特性是生成HTTP请求并接收其响应的能力。除了提供AJAX功能外,Dojo

午夜芭蕉雨的专栏 396

Dojo入门(一):HelloWorld程序

       Dojo是一个轻量级的web前端框架。它通过提供设计良好的api和工具包缩短了实现设计的时间。它是轻量级极其健壮的,提供工具来实现DOM操作,动画,ajax,event和键盘标准化,国际化I18N,可访问性。         Dojo是完全免费的开源JavaScript工具包用于构造web应用。  dojo依赖下载地址: http://dojotoolkit.org/downlo...

雨季的博客 357

dojo入门总结

引用dojo的引用 js中,某些属性名字类似于font-size 和 border-top ,要使用大小写组合来代替“-”,变成fontSize 和 borderTop 1. Dojo可以runtime实时设定各种配置信息。parseOnLoad用来处理页面装载解析widgets和添加代码,isDebug用来打开和禁止特定的debugging信息。     djConfig="parseO

心如止水 宠辱不惊 784

掌握 Dojo 工具包,第 1 部分: Dojo 入门简介

级别: 初级 谢 福生 (xiefus@cn.ibm.com), 软件工程师, IBM牟 磊 (mulei@cn.ibm.com), 实习生, IBM蒋 贤礼 (jiangxl@cn.ibm.com), 软件工程师, IBM董 伟 (wddong@cn.ibm.com), 软件工程师, IBM 2008 年 9 月 18 日 随着富互联网应用程序(Rich Internet Applicat...

weixin_30411997的博客 241

DOJO入门(1)-Hello,World!

 参考原文地址:http://dojo.jot.com/WikiHome/HelloWorld一、建立一个DOJO的环境然后建立以下的目录树,将dojo的内容全部复制到其中,就象这样:   OK,接下来,新建一个HTML页:      Dojo: Hello World!                二、添加

mint的专栏 3951

【第一章:dojo】1)dojo版“hello world

dojo hello world dojo.addOnLoad(function () { dojo.create("div", { innerHTML: "Hello world! ilyy ygf" }, dojo.body()); }); 结果

沈荣荣的博客 9540

Dojo入门:初识Dojo

Dojo的全称是Dojo Toolkit,始创于2004年,是当前各种蓬勃发展的JS工具包中的佼佼者。Dojo 为富互联网应用程序(RIA) 的开发提供了完整的端到端的解决方案,包括核心的 JavaScript 库,简单易用的小部件(Widget)系统和一个测试框架,此外,Dojo 的开源开发社区还在不停地为它提供新的功能。 Dojo特性 Dojo Tool...

weixin_30247781的博客 221

一步一步学dojo之(一)hello World

用了几个月的dojo了,只会改改别人的代码,或者只会照搬别人的东西,感觉很是郁闷啊。因为框架是别人搭建的,所以项目都做完了还对dojo不了解。现在想了解一下这到底是什么东东,于是网上一顿狂搜啊,但作为一个it人,深知学习一种新的知识最好的办法就是实际操作一边,所以就想自己走一边,...

118

第一个dojo hello world

   Hello World    确定dojo.js文件的相对路径,由此确定使用dojo的方式编程,这是必需的。  djConfig="parseOnLoad: true" 与 dojo.require("dojo.parser");一起配合来使页面能使用Dojo的解析架构。  djConfig是Dojo内置的一个全局对象,可以通过它来控制Dojo的行为。在本示例中,isDebug是dj

Kyle的专栏 429

Dojo入门三种HelloWorld!

学习Dojo有些时间了,也整理了一些资料,先来个最入门级别的。HelloWorld Asp.Net+Dojo   Dojo事件绑定,弹出HelloWorld   <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js"

一名系统架构师的征途 3402

Dojo Hellow World

we will learn how to download and install Dojo in your webapplication. You can easily add Dojo support into your existing application.This section covers:Download and install for new

凭水横江 474

Dojo 基础入门(二)

1.            简单示例我们对任何事物的了解都是从感性认识开始的,所以在这里我们也用一个经典的“Hello world!”示例来表现Dojo的使用。1.1.    页面样式 很简单,页面上一个按钮,点击按钮后,跳出一个显示Hello World信息的对话框。1.2.    代码分析

w的专栏 2136

Fsearch V0.2.3 文件搜索工具deb安装包(arm芯片组)

好不容搞到的Uos系统Fsearch V0.2.3 文件搜索工具deb安装包,arm芯片组的。类似windows下的everything,需要的下载吧!

上一篇: 快速安装Dojo
下一篇: 如何调试Dojo
bruceChu
博客等级 码龄18年 3粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值