标签‘widget’

两种方式使用Dojox.grid.DataGrid

Dojo的widget机制设计的很不错,默认提供了很多好用的widget,其中DataGrid就是最常用的一种,正常情况下,很多人会选择使用声明式的引入,就是在页面上写入任意html标签,指定dojoType为Dojox.grid.DataGrid,当然,既然是widget,也就支持另外一种方式,也是我比较喜欢用的方式,即编程式引入。

第一种

先通过引入dojo.data.ItemFileWriteStore,构建test_store,简单的理解,即数据源,对应DataGrid的store。dojo的dojo.data.ItemFileWriteStore可以方便的使用ajax请求的相应数据。下面是示例代码: 查看更多...

细谈可刷新Ajax无刷新应用的构建及原理

想必看标题就有一大部分朋友懵了,其实这个标题完全没有错,我要说的就是目前流行的ajax应用的构建。众所周知,ajax应用的核心就是使用javascript异步调用XmlHttp发送请求并接收数据,然后在前台进行局部刷新,从而达到无刷新改变页面内容的效果。但在很多场合,如果使用大量的ajax,虽然可以使应用使用体验更佳,却避免不了用户因为各种因素而进行的全局刷新。

举个例子,有个文章管理页面,完全是由ajax实现的,在默认情况下显示文章列表,点击某按钮或链接的情况下异步加载了文章添加的界面,此时如果用户刷新了页面,先不说已经写下的内容,页面是不是又回到了列表状态呢?没错,这就是我要说的问题。

其实之前就有过此类困扰,后来为了兼顾各方面灵活性,就采用了多页面的方式,部分地方还使用了iframe。最近又做项目使用了大量ajax,同理,遇到同样的问题。 查看更多...

dojo widget生命周期及使用详解

dojowidgetDojo所开发的控件具有很强的内聚性和面向对象性。dojo的dijit._widget是dojo提供的图形界面组件库。

首先从dijit组件的核心类dijit._Widget开始
dijit._Widget是所以dijit组件的父类,dijit默认提供的组件和自己开发的组件都要继承此类。dijit._Widget提供了对组件生命周期的管理。dijit组件生命周期管理在实现的时候使用了template method设计方式。dijit._Widget的create()方法定义了默认模版。开发人员也可以覆盖create()方法,提供一套不同的生命周期实现。dijit定义的生命周期实现:

图中椭圆行的三个方法是dijit提供的扩展点,用户可以自己覆盖这些方法。 查看更多...