`
bwong
  • 浏览: 7508 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

dojo组件渲染过程

    博客分类:
  • dojo
阅读更多
没想到第一篇文章就被选为推荐文章,所以要更加加把劲写了,这里科普性质的介绍一下dojo组件渲染过程。
首先是dojo组件的引用机制,引用dojo组件有两种方式:
一:通过script标签
二:通过dojo.require
第一种方式就没什么可说的了,第二种方式是一种比较方便但是又比较影响性能的方式,dojo.require入参是组件名,字符串参数,dojo的组件名参照类似java包的方式,通过路径名和文件名确定(有例外),比如dijit.form.Button,这个组件的脚本就在dojo包目录同级目录向下找,首先dojo包,也就是dojo.js所在目录,和这个目录平级应该有个叫dijit的目录,下面有个form目录,下面有个Button.js文件,button组件代码就在这个脚本中(有例外),dojo.require就是通过上述方法确定该脚本的路径,然后通过同步的ajax请求,请求到这个组件的脚本代码,再通过eval的方式加载到页面中,执行结果跟script标签引用一样效果,但是需要注意,dojo.require通过同步的ajax请求,而且一个浏览器能同时发送的请求数有限,所以会导致页面加载比较慢,这个请求可以使用浏览器缓存。
然后是dojo组件渲染,不论是手动还是自动调用dojo.parser.parse(),它会遍历到body中所有节点,找到带自定义属性dojoType的节点,这样的节点就是dojo需要渲染的节点,dojoType的值就是需要用哪个组件进行渲染,比如:
<div dojoType="dijit.form.Button"></div>
在渲染之前首先需要确定页面上已经加载了这个叫做"dijit.form.Button"的组件,否则页面会报脚本错误,dojo会new一个对应的组件实例,然后通过dijit组件框架把这个div传给它进行渲染,如果组件继承了dijit._Template的话,一般页面上写div或者font span都可以,因为template的作用是指定一个outerHTML,将页面上不论什么节点完全替换掉,所以页面上写什么都无所谓了,另外在写html时候需要注意,有innerHTML属性的节点需要用</xx>结束,比如div,<div></div>,而没有innerHTML属性的节点需要使用/>结束,比如input,<input/>,否则兼容性上会有一些问题。

欢迎光临我的独立博客http://bwong.me
1
1
分享到:
评论

相关推荐

    DOJO中文手册【出自dojo中国】

    2. **降级友好的用户界面**:通过Dojo,可以轻松创建适应不同浏览器环境的用户界面,它的小巧组件和动画过渡功能使得这一过程更为简便。 3. **底层API和兼容性**:Dojo的事件系统、I/O API和通用语言增强功能构成了...

    DOJO中文手册,非常全面

    DOJO的核心目标是解决长期以来在开发DHTML应用过程中遇到的历史问题,特别是跨浏览器兼容性问题。 #### 二、DOJO的功能特点 ##### 1. 动态网页支持 - **增强网页动态能力**:利用DOJO提供的组件,可以显著提高Web...

    dojo动态tree

    5. **可扩展性**:Dojo Tree可以与其他Dojo组件无缝集成,如dijit.form.Form、dijit.Dialog等,也可以与非Dojo的JavaScript库配合使用。 ### 动态加载 动态加载是Dojo Tree的一个关键特性。它通过`dojo/store`模块...

    dojo pagination sample

    首先,Dojo Toolkit是一个完整的、模块化的JavaScript库,它包含了大量的UI组件和工具,适用于构建富互联网应用程序(RIA)。在Dojo中,`dojox/grid/EnhancedGrid`组件是实现数据分页的关键。这个组件不仅支持分页,...

    dojo所有jar包dojoroot

    6. **AMD (Asynchronous Module Definition)**:Dojo是AMD模块定义规范的先驱,这种加载机制使得模块化开发更加高效,可以异步加载所需代码,避免阻塞页面渲染。 7. **Internationalization (i18n)**:Dojo提供了...

    dojo 在线操作表格

    8. **性能优化**:Dojo Grid通过虚拟滚动技术优化大规模数据的渲染,即使在处理成千上万条记录时也能保持流畅的用户体验。 9. **键盘导航**:Grid提供完整的键盘导航支持,使得用户可以通过键盘操作表格,提升无...

    DOJO中文学习手册2019-12-11.docx

    Dojo提供的组件包括小巧的widgets和动画过渡,帮助构建降级用户界面。其底层API和兼容性代码使得编写简洁、风格统一的JavaScript代码成为可能。Dojo的事件系统、I/O API和通用语言增强构成了强大的编程环境基础。...

    DOJO.js 最优秀的js 框架 1.9.3

    例如,`dojo/ready`确保在DOM完全加载后再执行脚本,避免了阻塞页面渲染。 **8. 兼容性与测试** DOJO致力于兼容多种浏览器,包括旧版IE。`dojo/domReady!`模块确保代码在所有浏览器中都能正确执行。同时,`dojo/...

    dojo的二级下拉菜单demo

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括构建、模块化、UI组件、数据管理等。在这个“dojo的二级下拉菜单demo”中,我们将探讨Dojo如何实现多级下拉菜单,这是一种常见的交互...

    dojo-release-1.6.1-src.zip

    1.6.1版本是在Dojo的模块化发展过程中的一次重要发布,引入了AMD(Asynchronous Module Definition)模块加载机制。 2. **AMD 模块系统**: AMD是Dojo 1.6引入的重要特性,它允许异步加载JavaScript模块,解决了大型...

    dojo pagination example

    Dojo的分页组件提供了一种优雅的方式来组织和导航长列表或表格数据,允许用户以可管理的块(每页)查看数据,而不是一次性加载所有内容。这不仅提高了用户体验,还减少了服务器负载,因为每次只请求和渲染一部分数据...

    基于dojo的动态树

    页面中可能会包含Dojo的配置、模块加载、数据模型定义以及树的渲染代码。通过`require`函数,我们可以引入Dojo的`dijit/Tree`和其他必要的模块。 而`dojotree`可能是一个目录,里面包含了实现动态树所需的所有Dojo...

    dojo中文手册

    Dojo 还尝试创建一种新的标记语言——DojoML,旨在提供多种渲染方式来展示数据,如SVG或桌面应用甚至Flash。DojoML解析器能够接受HTML和SVG作为输入,从而轻松构建适应不同环境的响应式应用。 在AJAX架构方面,Dojo...

    dojo Tree数据交互

    通过分析源码,可以更好地理解组件内部的事件处理、数据绑定和渲染机制,从而定制自己的解决方案。 总结来说,dojo Tree是一个功能丰富的JavaScript组件,用于构建交互式的树形结构。它支持数据的加载、节点的移动...

    dojo源码

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括DOM操作、事件处理、动画效果、模块管理、数据存储等。在深入理解Dojo源码之前,我们首先需要对JavaScript库和模块化开发有一个基本的...

    dojo的ppt课件和开发手册

    `dijit`是`dojo`的UI组件库,包含了大量的可复用、可配置的用户界面元素,如按钮、表单、面板、菜单等。这些组件遵循WAI-ARIA标准,确保良好的无障碍性。 7. **国际化与本地化** `dojo/i18n`模块支持应用程序的...

    DOJO技术培训文档下载

    2. **dojo/parser**: 解析HTML中的data-dojo-type属性,自动创建和配置DOJO组件。 3. **dijit/WidgetSet**: 一组可操作的UI组件集合。 4. **dojo/text**: 加载HTML模板文件,与dijit/ TemplatedWidget结合使用,实现...

    dojo

    例如,使用Dojo的`dojo/xhrGet`或`dojo/xhrPost`发送请求,PHP接收并处理这些请求,然后返回相应的JSON数据,Dojo再将这些数据渲染到页面上。 在"IWDMobile.html"这个文件中,很可能展示了如何使用Dojo和PHP共同...

    dojo技术入门ysk

    2. **高性能**:通过优化的代码结构和高效的渲染机制,Dojo能够确保即使在复杂的Web应用中也能保持良好的性能。 3. **跨浏览器兼容性**:Dojo支持多种主流浏览器,如Chrome、Firefox、Safari等,这使得开发的应用...

    Dojo之Widget标签开发 - 我为人人,人人为我 - BlogJava

    本文主要探讨的是在Dojo框架下进行Widget标签开发的技术细节,旨在帮助开发者更好地理解和利用Dojo构建可重用、模块化的Web组件。 首先,我们要了解什么是Widget。在Dojo中,Widget是UI组件的基础,它封装了HTML...

Global site tag (gtag.js) - Google Analytics