第四十一讲:tapestry Ajax周期性更新

源码如下:

AJAXPeriodicUpdate.java

/**
 * 项目名称:TapestryStart
 * 开发模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
 * 网址: http://www.flywind.org
 * 版本:1.0
 * 编写:飞风
 * 时间:2012-02-29
 */
package com.tapestry.app.pages;
 
import java.util.Date;
 
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.services.Request;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
@Import(library = "context:assets/js/AJAXPeriodicUpdate.js")
public class AJAXPeriodicUpdate {
 
@InjectComponent
private Zone timeZone;
 
@Inject
private JavaScriptSupport javaScriptSupport;
 
@Inject
private Request request;
 
public void setupRender() {
javaScriptSupport.addInitializerCall("periodicTimeZoneUpdater", new JSONObject());
}
 
Object onRefreshTimeZone() {
return request.isXHR() ? timeZone.getBody() : null;
}
 
public Date getServerTime() {
return new Date();
}
}
 

AJAXPeriodicUpdate.tml

<html t:type="layout" title="tapestryStart Index"  t:sidebarTitle="Framework Version" 
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter">
<div style="margin-left: 50px">
<a t:type="eventlink" t:id="refreshTimeZone" href="#" t:zone="timeZone" style="display: none;">Hidden EventLink</a>
 
<t:zone t:id="timeZone">
serverTime:  ${serverTime}
</t:zone><br/>
</div>
</html>

AJAXPeriodicUpdate.js

PeriodicTimeZoneUpdater = Class.create( {
 
initialize: function() {
var eventLink = $('refreshTimeZone');
 
var updatesCount = 0;
 
new PeriodicalExecuter(function(pe) {
if (updatesCount++ < 4) {
Tapestry.findZoneManager(eventLink).updateFromURL(eventLink.href);
}
else {
pe.stop();
}
}, 3);
}
 
})
 
Tapestry.Initializer.periodicTimeZoneUpdater = function(spec) {
new PeriodicTimeZoneUpdater();
}

转载于:https://my.oschina.net/shootercn/blog/55522

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值