Ajax 组件(Ajax Components)
优质
小牛编辑
127浏览
2023-12-01
AJAX代表Asynchronous JavaScript and XML 。 它是一种借助XML, JSON, HTML, CSS,和JavaScript创建更好,更快,更交互的Web应用程序的技术。 AJAX允许您在不重新加载网页的情况下异步发送和接收数据,因此速度很快。
区域组件
区域组件用于提供内容(标记)以及内容本身的位置。 Tape Component内部使用Zone Component的主体来生成内容。 生成动态内容后,Tapestry会将其发送到客户端,在正确的位置重新呈现数据,触发并动画HTML以吸引用户的注意力。
此Zone组件与EventLink组件一起使用。 EventLink可以选择使用t:zone属性将其绑定到特定区域。 在EventLink中配置区域后,单击EventLink将触发区域更新。 此外,EventLink事件(refreshZone)可用于控制动态数据的生成。
AJAX的一个简单示例如下 -
AjaxZone.tml
<html t:type = "Newlayout" title = "About MyFirstApplication"
xmlns:t = "http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:p = "tapestry:parameter">
<body>
<h1>Ajax time zone example</h1>
<div class = "div1">
<a t:type = "eventlink" t:event = "refreshZone" href = "#"
t:zone = "timeZone">Ajax Link </a><br/><br/>
<t:zone t:id = "timeZone" id = "timeZone">Time zone: ${serverTime}</t:zone>
</div>
</body>
</html>
AjaxZone.java
package com.example.MyFirstApplication.pages;
import java.util.Date;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Request;
public class AjaxZone {
@Inject
private Request request;
@InjectComponent
private Zone timeZone;
void onRefreshPage() {
}
Object onRefreshZone() {
return request.isXHR() ? timeZone.getBody() : null;
}
public Date getServerTime() {
return new Date();
}
}
结果将显示在:http:// localhost:8080/MyFirstApplication/AjaxZone