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