19.Dojo的Ajax标签和JSON

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

19.Dojo的Ajax标签和JSON
dojo提供了很多ajax标签,这些标签同样也是有好有坏,就像一些黄金埋在砖块里。

需要靠我们自己去分辨那些是黄金,那些是砖块。

我的做法是另可错杀一千,绝不放过一个。

所以把上面的标签都翻了个遍。

已下的所以标签都需要按上一章中提到的导入dojo支持。

这里就不多废话了。

1:div
div标签在是dojo的一个很重要的标签,他和普通的HTML div比起来强大很多了,提高了ajax的支持,可以简单的值得路径后获取服务器端返回的数据,甚至不需要你写一句JS代码。

href:指定了这个div提交的服务器路径。

updateFreq:指定更新间隔时间(单位是毫秒),如果不指定则只在页面加载的时候更新一次。

delay:页面加载后多少时间开始更新(单位是毫秒)。

indicator:是加载前等待的对象,比如放张转圈圈的图片呀这些。

errorText、loadingText这些就不用说了,字面上就能看出来。

executeScripts:是否允许远程JS脚本允许。

random.action:
random.action返回的视图资源
testjs.action和上一章中的testjs.action一样,请参照上一章
如果不希望div标签访问调用远程的java方法,则可以指定handler属性
sx-div中指定了handler ,意味着该div每次刷新时该JS函数都会被调用,而不会去调用href 中指定的action。

再看一个有趣的例子:
代码:
先说这几个属性:
notifyTopics 发布主题
listenTopics 监听的事件主题当有Struts2组件向该主题发布事件时,该div的计时器被刷新
startTimerListenTopics 监听的事件主题当有Struts2组件向该主题发布事件时,该div 的计时器被启动
stopTimerListenTopics 监听的事件主题当有Struts2组件向该主题发布事件时,该div 的计时器被关闭
首先:
dojo.event.topic.subscribe("/after",function(data,type,e){……
});
定义了一个主题,div1每隔3秒就会发布该主题。

当点击手动刷新按钮时调用controller.refresh()方法
通过下面行代码,该方法被调用时将会发布/refresh主题
//将controller的refresh方法注册成/refresh主题的发布者
dojo.event.topic.registerPublisher("/refresh",controller,"refresh"); 在div中定义了listenTopics="/refresh"也就是只要发布该事件就会刷新div。

下面的停止按钮和启动按钮也是同样的原理。

2:submit 和a
submit标签和a标签的作用基本上是相同的,唯一不同的是在表现形式上,submit生成一个提交按钮,而a标签生成的是一个超链接。

看看代码吧,都大同小异的
3:autocompl ete
这个标签应该是ajax的一个典型应用。

自动完成
总体感觉这个标签的出发点不错,实现得也很好,但是有很多小的bug,在IE中的显示效果不是很好。

有些小细节上处理也有问题。

但是作为范例是很不错的。

学习吧,以后自己弄。

看看代码:
用法很简单,只有href的请求action中返回的资源文件的格式是一个JSON字符串就
OK,悲剧的是在处理中文上有些郁闷的地方。

tabbadpanel用来生成一个选项卡组件
textarea 用来生成富文本框组件
tree 用来生成树菜单
datetimepicker:日历控件
这些控件个人觉得很一般,而且问题很多。

就不多说了,有兴趣自己去看看。

4.bind
说说这个还是不错bind 也是用与发布异步数据请求的标签,但他本身并不会生成任何可视化的HTML标签,它是将一个已有的标签转换为异步请求的标签,由于该标签需要将已有的标签转换为发送异步请求的标签,所以使用bind是必须指定sources和events两个属性。

sources 指定一个或多个元素的ID属性值,多个时使用逗号隔开
events 指定一个或多个事件名称,多个事件使用逗号隔开。

看看代码:
这样就将一个普通的按钮和图片的点击事件转换成了异步请求数据了JSON
json是什么不废话。

用法开始:
这个破插件需要将struts2-json-plugin-2.2.1.jar文件导入。

完整的struts2的lib中能找到需要的js :
json2.js、prototype-1.6.0.3.js我已经从李刚的书上弄下来了。

相关文档
最新文档