Apache Tapestry - Ajax Bileşeni
AJAX, Asynchronous JavaScript and XML. Yardımıyla daha iyi, daha hızlı ve daha etkileşimli web uygulamaları oluşturmak için bir tekniktir.XML, JSON, HTML, CSS, ve JavaScript. AJAX, web sayfasını yeniden yüklemeden eşzamansız olarak veri göndermenize ve almanıza olanak tanır, bu nedenle hızlıdır.
Bölge Bileşeni
Bir Bölge Bileşeni, içeriği (işaretlemeyi) ve ayrıca içeriğin konumunu sağlamak için kullanılır. Zone Bileşeninin gövdesi, içeriği oluşturmak için Tapestry tarafından dahili olarak kullanılır. Dinamik içerik oluşturulduktan sonra, Tapestry bunu müşteriye gönderecek, verileri doğru yerde yeniden işleyecek, kullanıcının dikkatini çekmek için HTML'yi tetikleyecek ve canlandıracaktır.
Bu Zone bileşeni, bir EventLink bileşeniyle birlikte kullanılır. Bir EventLink, bunu kullanarak belirli bir bölgeye bağlama seçeneğine sahiptir.t:zoneÖznitellikler. Bölge EventLink'te yapılandırıldığında, EventLink'e tıklamak bölge güncellemesini tetikleyecektir. Ek olarak, EventLink olayları (yenilemeZone) dinamik verilerin oluşturulmasını kontrol etmek için kullanılabilir.
AJAX'ın basit bir örneği aşağıdaki gibidir -
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();
}
}
Sonuç şu adreste görünecektir: http: // localhost: 8080 / MyFirstApplication / AjaxZone