Herramientas de usuario

Herramientas del sitio


tecnicas:ajax

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
tecnicas:ajax [08/12/2019 15:15]
pedro creado
tecnicas:ajax [20/11/2020 23:44] (actual)
pedro
Línea 1: Línea 1:
-===== Utilizando Ajax con Néfele =====+====== Utilizando Ajax con Néfele ​======
  
 AJAX nos permite que nuestras web puedan enviar y recibir información a nuestro CGI sin volver a cargar toda la página, actualizando dinámicamente solo la parte de la página que queremos. AJAX nos permite que nuestras web puedan enviar y recibir información a nuestro CGI sin volver a cargar toda la página, actualizando dinámicamente solo la parte de la página que queremos.
  
-Para ello debemos crear el [[controles.wbevel|wBevel]] donde vamos a recibir la respuesta de nuestro CGI, y al control que haga la llamada le indicaremos en su propieda ​[[propiedades.cajaxbevel|cAjaxBevel]] cuál es el [[propiedades.cid|cId]] de dicho [[controles.wbevel|wBevel]].+Para ello debemos crear el [[controles:wBevel]] donde vamos a recibir la respuesta de nuestro CGI, y al control que haga la llamada le indicaremos en su propiedad ​[[propiedades:cAjaxBevel]] cuál es el [[propiedades:cId]] de dicho [[controles:wBevel]].
  
 Si no indicamos nada en dicha propiedad no se realizará la consulta por AJAX lo que provocará la carga de una página nueva solo con el contenido de la respuesta de nuestro CGI. Si no indicamos nada en dicha propiedad no se realizará la consulta por AJAX lo que provocará la carga de una página nueva solo con el contenido de la respuesta de nuestro CGI.
Línea 9: Línea 9:
 Nuestro CGI recibirá la llamada, pero no sabe si es por AJAX o no, lo ideal es que la función a la que llamamos este diseñada para dar un respuesta para AJAX. Nuestro CGI recibirá la llamada, pero no sabe si es por AJAX o no, lo ideal es que la función a la que llamamos este diseñada para dar un respuesta para AJAX.
  
-Y como lo hacemos, primero tenemos que tener en cuenta que solo crearemos el contenido que va en el [[controles.wbevel|wBevel]] de respuesta, por lo tanto no crearemos ningún [[controles.twebpage|TWebPage]], si vamos a enviar varios controles tendremos que encapsularlos en un [[controles.wbevel|wBevel]] o en un [[controles.wpanel|wPanel]], ya que será el Create() de este el que montara todo el HTML que devolveremos a la página web.+Y como lo hacemos, primero tenemos que tener en cuenta que solo crearemos el contenido que va en el [[controles:wBevel]] de respuesta, por lo tanto no crearemos ningún [[controles:TWebPage]], si vamos a enviar varios controles tendremos que encapsularlos en un [[controles:wBevel]] o en un [[controles:wPanel]], ya que será el Create() de este el que montara todo el HTML que devolveremos a la página web. 
 + 
 +Como es posible que no solo tengamos que enviar HTML, sino que haga falta código JS u otro código, utilizaremos el método [[metodos:​FullHTML]] del contenedor para que nos lo agrupe todo en una cadena para la respuesta. 
 + 
 +En aquellos casos en los que la respuesta a una llamada por Ajax solo retorne código Script (JS o JQuery), podemos indicar en cAjaxBevel **nflcargo** que es un wBevel oculto que esta en todas las páginas generada con Néfele con dicho fín. 
 + 
 +===== Código de uso ===== 
 + 
 +<​Code:​xailer linenums:​1>​ 
 +   WITH OBJECT wForm():​New( ) 
 +      :​lAutoComplete := .F. 
 +      :​cFunction ​    := "​ControlAcceso"​ 
 +      WITH OBJECT WEdit():​New( :​__WithObject() ) 
 +         :​cId ​       := "​usuario"​ 
 +         :​cTitle ​    := "​Usuario"​ 
 +         :​cIcon ​     := "​person"​ 
 +         :​lAutoFocus := .T. 
 +         :​SetRequired() 
 +         :​Create() 
 +      END WITH 
 +      WITH OBJECT WEdit():​New( :WO ) 
 +         :​cId ​   := "​password"​ 
 +         :​cTitle := "​Password"​ 
 +         :​cIcon ​ := "​lock"​ 
 +         :​SetSubmit() 
 +         :​SetPassword() 
 +         :​SetRequired() 
 +         :​lSubmit := .T. 
 +         :​Create() 
 +      END WITH 
 +      WITH OBJECT WButton():​New( :WO ) 
 +         :​cId ​      := "​submit"​ 
 +         :​cText ​    := "​Aceptar"​ 
 +         :​lSubmit ​  := .T. 
 +         :​lLarge ​   := .T. 
 +         :​lCenter ​  := .T. 
 +         :​Create() 
 +      END WITH 
 +      :Create() 
 +      cHtml := :​FullHtml() 
 +   END WITH 
 +   ​oCgi:​SendPageNoCache( cHtml ) 
 +</​Code>​ 
 + 
 + 
 +~~DISCUSSION|Utilizando Ajax con Néfele~~ 
 + 
 +{{tag>​[nefele ​ primeros-pasos]}}
  
-Como es posible que no solo tengamos que enviar HTML, sino que haga falta código JS u otro código, utilizaremos el método [[metodos.fullhtml|FullHTML]] del contenedor para que nos lo agrupe todo en una cadena para la respuesta. 
tecnicas/ajax.1575818152.txt.gz · Última modificación: 21/07/2020 10:50 (editor externo)