Apache Tapestry-Ajax 구성 요소
AJAX는 Asynchronous JavaScript and XML. 다음의 도움을 받아 더 빠르고, 더 빠르고, 더 인터랙티브 한 웹 응용 프로그램을 만드는 기술입니다.XML, JSON, HTML, CSS, 과 JavaScript. AJAX를 사용하면 웹 페이지를 다시로드하지 않고도 데이터를 비동기 적으로 보내고받을 수 있으므로 속도가 빠릅니다.
구역 구성 요소
영역 구성 요소는 콘텐츠 자체의 위치뿐만 아니라 콘텐츠 (마크 업)를 제공하는 데 사용됩니다. Zone Component의 본문은 Tapestry에서 내부적으로 콘텐츠를 생성하는 데 사용됩니다. 동적 콘텐츠가 생성되면 Tapestry는이를 클라이언트로 보내고 데이터를 올바른 위치에 다시 렌더링하고 HTML을 트리거하고 애니메이션하여 사용자의 관심을 끕니다.
이 영역 구성 요소는 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에 표시됩니다.