- 浏览: 686355 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
di1984HIT:
学习了,学习了!
Tomcat的URL中文乱码解决以及传输优化 -
arottenapple:
...
我的二十一天CoreJava 学习笔记 -
黯淡流觞:
...
我的二十一天CoreJava 学习笔记 -
onlyOneToOne:
wsc830719 写道@RequestMapping(val ...
spring mvc3中 ResponseBody中文乱码 -
waj_615:
但是打印订单不是简单的string 啊
用java实现打印功能
原文地址:http://dojotoolkit.org/reference-guide/1.7/quickstart/helloworld.html#quickstart-helloworld
这篇文章是为那些dojo新手而写的。这里会尽可能的介绍一些dojo的内容,但不可能非常的详细,因为如果太详细就会使新手误解dojo是这些的复杂这么的难学,从而可能会吓退部分的初学者。如果想了解更多的内容,就去找专门的API或文章了。
所需要的环境
- 要有dojo.从dojotoolkit.org下载最新版的。
- 要有一个web服务器。dojo的很多功能要部署在服务器上才出展现
- 要有一门语言的容器ASP,PHP,JSP的都行。因为dojo的ajax功能需要这种客户端-服务端架构
- IE,firefox,opera,safar浏览器。。。
配置dojo
在web服务器里我们来创建一个文件夹,起名HelloWorldTutorial,在里面再创建一个子文件夹dojoroot,把dojo的下载文件解压后放到这个子文件夹下,最后效果如图
开始来dojo了
好了,我们开始来设计我们的html页面了。创建一个页面,使内容如下
<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" data-dojo-config="parseOnLoad: true"></script> </head> <body class="tundra"> </body> </html>
从上面的代码中可以看出,这只是一个静态的页面,里面引入了两个css,一个dojo的js
创建一个铵钮控件
好,第一个令人兴奋的效果就要来了。现在我们要创建一个按钮的控件,他会给出鼠标不同操作的不同效果新体验。
第一步,要让dojo去加载一个合适的模块。在页面头中,我们加入新的代码。如下显示
<!-- SECTION 2 --> <script type="text/javascript"> // Load Dojo's code relating to the Button widget dojo.require("dijit.form.Button"); </script>
代码中的dojo.require就是去加载新按钮控件,如果没有这句代码就将不会有效果的.
第二步,在页面中加入以下代码
<button data-dojo-type="dijit.form.Button" id="helloButton">Hello World!</button>
在上面代码中,我们要注意的是data-dojo-type这个属性。这个属性就是用于通知dojo如何来操作当前的元素。上面的代码就是让dojo对当前元素进行dijit.form.button的相关处理.只要发现了data-dojo-type这处属性就会对其进行相应的操作
给控件加上事件
现在要给控件加上一个事件了,虽然我们可以给其加上一个onClick事件,但是我们还有另一种更有效的处理方法。就是加入dojo事件系统。
最简单的加入方法就是给按钮加入一个脚本标签。但不是任意的标签。这里的是dojo/method的脚本标签,参考以下代码
<button data-dojo-type="dijit.form.Button" id="helloButton"> Hello World! <script type="dojo/method" data-dojo-event="onClick"> alert('You pressed the button'); </script> </button>
简单吧。把脚本标签写在元素内部在某种意义上来说是有好处的。这样可以充分的使用二级事件。比如,对于能检测到是否在这个元素上进行了ctrl或shift等组合键的操作等等。如果你使用过这种二级事件处理的话,你将会知道,IE和Firefox是有不同的处理方式的。而对于dojo来说,处理的代码都是一样的。这是dojo很强的地方。
从服务器中读数据
点击按钮会弹出提示信息的效果已经做出来了。那现在来做个从服务器中取数据的效果。
dojo有一个简单的方法可以完成这个功能,使用dojo.xhrGet。
现在我们将从服务器中取文件response.txt这个文件中的内容。
第一步,我们要创建一个回调函数来处理从服务器读取到的数据。我们将它alert出来。加入以下语句
<script type="text/javascript"> function helloCallback(data, ioArgs){ alert(data); } function helloError(data, ioArgs){ alert('Error when retrieving data from the server!'); } </script>
注意:这两个方法一个都不能少。第一个是处理成功返回的数据。第二个是绑定dojo的io功能的。
第二步,要把按钮的事件处理由提示固定信息更改成提示从服务器读取的信息。将脚本
<script type="dojo/method" data-dojo-event="onClick"> alert('You pressed the button'); </script>
改成
<script type="dojo/method" data-dojo-event="onClick"> dojo.xhrGet({ url: 'response.txt', load: helloCallback, error: helloError }); </script>
上面的代码就完成这个功能了,它告诉dojo,使用url的方式去取服务器内容,用load的函数来处理取到的内容。如果访问出错,就用error函数来处理错误信息。
通过GET方法向服务器发送信息
现在我们使用GET方法向服务器发送信息,这在服务器里要有一个文件,起名为HelloWorldResponseGET.jsp文件
当然了,如果你用别的语言,那就可能是.asp .php .cfm等类型了
现在由于我们要发送信息,所以我们要加入一个输入框,把以前的代码
<button data-dojo-type="Button" widgetId="helloButton"> <script type="dojo/method" data-dojo-event="onClick"> dojo.xhrGet({ url: 'response.txt', load: helloCallback, error: helloError }); </script> </button>
改成
<button data-dojo-type="dijit.form.Button" id="helloButton"> Hello World! <script type="dojo/method" data-dojo-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" />
对于以上的url地址,要注意对应自己所选用的语言。
从上面的代码中我们可以发现,现在多个一个属性。content,这个属性可以含有合适的参数以传后服务器中,name就是后台服务器所要接的参数。如果后台服务器要接的参数是myName,则代码就要改成
content: {myName: dojo.byId('name').value }
dojo.byId这个方法我们还没介绍,他的功能就是相当于document.getElementById的功能
好了,功能完成了,你输入信息再点击按钮后就会返回信息Hello <name>, welcome to the world of Dojo!, 其中name就是你所输入的内容
相应的服务器端文件内容是
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服务器
<% /* ' 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方式提交内容到服务器中
要改成POST方式提交非常的简单,稍微改下方法就行了。
第一步,加入form元素
把代码
Please enter your name: <input type="text" id="name" />
改成
<form id="myForm" method="POST"> Please enter your name: <input type="text" name="name" /> </form>
第二步,把方法
<script type="dojo/method" data-dojo-event="onClick"> dojo.xhrGet({ url: 'HelloWorldResponseGET.php', load: helloCallback, error: helloError, content: {name: dojo.byId('name').value } }); </script>
改成
<script type="dojo/method" data-dojo-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>
从上面代码可以看出来,我们改了一下方法名,把xhrGET改成了xhrPost,把content属性删除了。加入了表单元素。
再就是改下服务器中的处理文件了,这个和GET方法中的处理差不多,就是把取GET的改成取POST的。
具体服务器文件实现方式略去。
发表评论
-
dojo封装dialog提示框
2012-06-20 10:20 5636/** * 显示dojo的弹出框.前提是已经引用了相 ... -
dojo封装表单ajax提交
2012-06-20 10:16 1709/** * dojo的ajax提交form(post ... -
封装创建dojo的dialog
2012-06-18 13:55 0/** * 显示dojo的弹出框.前提是已经引用了相 ... -
自定义封装dojo通用ajax提交表单
2012-06-18 13:52 2648/** * dojo的ajax提交form(post ... -
使用dojo的dialog自定义confirm效果
2012-06-18 13:43 5114/** * 使用dojo dialog模拟confi ... -
dojo 制做非模态窗口dialog
2012-06-16 13:27 4324dojo的dialog效果基本上都是模态的,也就是说,在弹出窗 ... -
dojo1.7的加载方法
2012-06-01 17:16 4259对于dojo1.7来说,最大的变化就是引入了AMD异步加载器。 ... -
不翻译DOJO了
2012-05-16 17:57 1100翻译DOJO的时间并不长。总是感觉把老外的话翻译过来很是生硬, ... -
dojo1.7翻译 数组工具(Arrays Made Easy)
2012-05-14 10:55 1954英文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 Dijit的主题,按钮和文本框(Dijit Themes, Buttons, and Textboxes)
2012-05-03 15:52 2192原文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 动画效果(Animations)
2012-05-02 12:08 2755原文地址:http://dojotoolk ... -
dojo1.7翻译 动态效果(Dojo Effects)
2012-04-27 10:15 1315原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 处理DOM(Dojo DOM Functions)
2012-04-26 15:51 2512原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 ajax跨域请求(Getting Jiggy with JSONP)
2012-04-25 12:02 3155原文地址:http://dojotoolk ... -
dojo1.7翻译 ajax功能(Ajax with Dojo)
2012-04-24 15:04 1564原文地址:http://dojotoolk ... -
dojo1.7翻译 搜索节点功能(Using dojo/query)
2012-04-23 15:32 1886原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 hello,dojo
2012-04-22 15:21 2142原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义类(Classy JavaScript with dojo/_base/declare)
2012-04-20 15:34 2536原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义模块(Defining Modules)
2012-04-18 17:21 6837原文地址:http://dojotoolkit ... -
dojo1.7翻译 通过dojoConfig来配置dojo
2012-04-18 09:20 5207原文地址:http://dojotoolk ...
相关推荐
【Dojo 1.7 知识点详解】 Dojo 1.7 是 Dojo Toolkit 重要的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的主要焦点在于Asynchronous Module Definition (AMD),这是一种优化...
【Dojo 1.7 中文版本注释功能说明】 Dojo 1.7 是一个重大的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的核心亮点是实现了Asynchronous Module Definition (AMD)机制,这是一项...
《Dojo 1.7 API CHM:深入理解与应用》 Dojo 是一个功能强大的JavaScript工具库,尤其在Web开发领域,它提供了一系列高级功能,包括模块化、数据管理、用户界面构建以及Ajax交互等。Dojo 1.7 API CHM文件是针对这个...
7. **dojo/on**: Dojo 1.7 中的事件处理模块`dojo/on`提供了一种统一的方式来绑定和处理DOM事件,它兼容各种浏览器,提升了代码的可移植性和可维护性。 8. **dojo/aspect**: 这是一个面向切面编程(AOP)的模块,...
Dojo 1.7 版本是其历史上的一个重要里程碑,引入了许多改进和优化,包括模块化系统AMD(Asynchronous Module Definition)以及对Dijit UI 框架的增强。 首先,我们来详细了解一下Dojo 的核心部分。Dojo 框架的核心...
【标题】"Dojo Hello World" 是一个针对初学者的教程,主要介绍如何在Web开发中使用Dojo JavaScript库创建一个简单的"Hello, World!"示例。Dojo是一个功能强大的JavaScript框架,它提供了丰富的工具集,包括UI组件、...
《Dojo 1.7 深入解析与应用实践》 Dojo 是一个全面的JavaScript工具库,专为构建富互联网应用程序(RIA)而设计。这个“dojo-release-1.7.1-src”压缩包包含了Dojo 1.7.1的源代码,为开发者提供了深入了解和自定义...
本“dojo服务器推送技术的HelloWorld例子”旨在帮助初学者理解如何使用Dojo和Comet技术来实现实时通信。下面我们将深入探讨这两个关键概念。 1. **Dojo框架**: Dojo是一个开源的JavaScript库,提供了丰富的功能和...
"dojo-release-1.7.3"是Dojo框架的一个特定版本,发布于2012年,这个版本在1.7系列中被认为是稳定且广泛使用的。 1. **模块化系统(AMD)** Dojo 1.7 引入了Asynchronous Module Definition(AMD),这是一种异步...
手册中列举了一些常用的Dojo包,如dojo.io用于不同类型的IO传输,dojo.dnd提供拖放功能的API,dojo.string提供了字符串处理方法,dojo.date帮助解析和操作日期,dojo.event处理事件驱动和AOP开发,dojo.back管理撤销...
Dojo 1.7 引入了AMD,这是一种异步模块定义的加载机制,允许开发者按需加载模块,提高了页面性能。通过`require()`函数,我们可以方便地引入和依赖其他模块。 2. **Dijit UI 库:** Dijit是Dojo的UI组件库,包含...
在Dojo 1.7及以后的版本中,推荐使用`dojo/on`模块来处理事件。 7. **动画效果**:dojo的`dojo.fx`模块提供了创建复杂动画的能力,包括淡入淡出、滑动、缩放等效果。同时,`dojox.fx`提供了更多的特效和动画组合。 ...
这个"Struts2_HelloWorld"例子是初学者踏入Struts2世界的绝佳起点,它通过一个简单的实例展示了如何在Struts2框架下创建并运行一个基本的Web应用。 首先,我们来看"HelloWorld"的实现过程。在Struts2中,我们通常会...
`dojo/request`是Dojo 1.7引入的新API,它对xhr进行了封装,提供了更简洁的接口。 在实际开发中,Dojo的工具集如Build System也十分有用。它允许开发者对项目进行优化,包括合并、压缩和混淆JavaScript及CSS文件,...
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...
10. **dojo.on**: Dojo 1.7引入了`dojo/on`模块,它提供了更现代、更符合DOM Level 2事件接口的事件处理方式,同时兼容老版本的`dojo.connect`。 以上所述是Dojo 1.6在DOM操作方面的核心功能。通过这些API,开发者...
这个"dojo 官方教程 中文翻译"是针对Dojo框架的全面指南,帮助中文用户更好地理解和应用Dojo。 在Dojo官方教程中,你可以学习到以下核心知识点: 1. **Dojo基础**:了解Dojo的核心概念,如dojo/_base模块,这是...
在学习任何新的编程库或框架时,创建“Hello, World!”类型的程序是常见的起点,它帮助开发者理解如何引入库,并执行最基本的交互。 尽管没有具体的标签,我们可以假设这个压缩包可能包含以下内容: 1. **dojo.js*...
这个"Dojo官方教程中文翻译完美版"为开发者提供了全面了解和掌握Dojo工具集的宝贵资源。 在Dojo框架中,有几个核心概念和关键组件是学习的重点: 1. **模块系统(AMD,Asynchronous Module Definition)**:Dojo是...
|+--dojo_hello_world.html| ``` 其中 `dojo.js` 文件位于 `dojo-lib/dojo/` 目录下。要在 HTML 页面中引用 Dojo,需要在页面头部添加以下代码: ```html <script type="text/javascript" src="./dojo-lib/dojo/...