锁定老帖子 主题:【翻译】理解dojo.require机制
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-13
虽然各个框架都提供了最常用的Web开发特性,但一直认为Dojo是最强大的,也许没有太绚丽的外观,太完善的文档。但不得否认的是,Dojo中有太多让人眼前一亮的机制,例如dijit,template,declare。这里的dojo.require也是其中之一,它让你能够很舒服的管理大量的javascript文件。作为Dojo最基础的机制之一,下面这篇文章可以让你对其有基本的理解,希望能帮助大家更多的了解Dojo!本人在此贴欢迎任何Dojo相关提问^^
======================================================================== Dojo 提供了一个非常强大的javascript控件库. 在使用dojo之前,用户基本上不需要具备任何基础知识. 你可以用script远程链接到dojo(dojo.js), 也可以把dojo.js下载到本地并用script标签加载.
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”dojo/dojo.js”></script> </body> </html>
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script src=”/dojo/io/script.js”></script> </body> </html>
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”dojo.io.script”); //Note: do not include the .js </script> </body> </html>
dojo.provide(”flickrApp “); //similar to doing flickrApp = {};
dojo.provide() 创建了一个以你传入的字符串(flickrApp )命名的对象结构(名字空间), 我们这里是创建了一个名为flickrApp的对象, 该对象创建后, 我们便可以像定义该对象的各个属性一样来定义该应用( flickrApp ) 的各个方面, 下面是 flickrApp.js 一个例子: dojo.provide(”flickrApp”); //start creating the application logic for my flickr app flickrApp.getData = function(){};
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”dojo.io.script”); dojo.require(”flickrApp”); </script> </body> </html>
//below is similar to doing var flickrApp = {}; flickrApp.data = {}; dojo.provide(”flickrApp.data “); // Note: do not include the .js flickrApp.data.getData = function(){};
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”dojo.io.script”); dojo.require(”flickrApp.data “); </script> </body> </html>
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”dojo.io.script”); dojo.require(”flickrApp.data”); </script> </body> </html>
dojo.provide(”flickrApp.data”); dojo.require(”dojo.io.script”); // Note: dojo.require() should be used after dojo.provide() flickrApp.data.getData = function(){};
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”flickrApp.data”); </script> </body> </html>
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/dojo/dojo.js”></script> <script> dojo.require(”flickrApp.data”); dojo.ready(function(){ // Note that dojo.ready() is a shortcut for dojo.addOnLoad() added in Dojo 1.4 // Run code from data.js and all its dependencies safely }); </script> </body> </html>
dojo.require(”some.module”); dojo.ready(function(){ //run code from some.module.js and all its dependencies safely dojo.require(’some.other.module’); dojo.ready(function(){ //run code from some.other.module.js and all its dependencies safely }); });
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script src=”/js/dojo1.4.1/dojo.js”></script> <script> dojo.registerModulePath(”some”, “../../some/”); dojo.require(”some.other.module”); </script> </body> </html>
<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf-8″ /> <title>Dojo</title> </head> <body> <script type=”text/javascript”> var djConfig = {modulePaths:{”some”:”../../some/”}}; </script> <script src=”/dojo/dojo1.4.1/dojo.js”></script> <script> dojo.require(”some.other.module”); </script> </body> </html>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-19
我在dojo的同级目录下建立了一个文件夹common,然后在这个文件夹下放了一个app.js文件
内容是 dojo.provide("common.app"); var Car = function(name){ this.name = name; this.say = function(){ alert(this.name); } }; 我的HTML文件是这样引用的 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <script type="text/javascript" src="dojo/dojo.js"></script> <script type="text/javascript"> dojo.require("common.app"); var c = new Car("BENZ"); c.say(); </script> </HEAD> <BODY> </BODY> </HTML> 在FF下可以输出"BENZ",但在IE下报没有Car这个对象. 如何解决? |
|
返回顶楼 | |
浏览 3016 次