Pregunta

¿Cuáles son las principales ventajas de Ext.direct sobre las llamadas ext.Ajax regulares?¿Cuándo debo considerar usar uno sobre el otro?

¿Fue útil?

Solución

En realidad, depende de su back-end, lo que quiere hacer, y lo que se ajusta a su situación. La pregunta que presentabas es bastante vago, por lo que mi respuesta solo puede hacerlo por ti, me temo. Lo mejor que puede hacer es mirar las páginas API para ext.direct y ext.Ajax. Ext.Direct fue (la última vez que miré) muy bien documentada, como lo es. AJAX, sin embargo, no hay mucho para .AJAX.

ext.direct - Comencé a implementar esto en mi último trabajo, y todo en todo fue que Pita se levantara y se ejecute, sin embargo, los beneficios después de que fuera bastante limpio. Ext.direct le permite llamar al servidor para ejecutar métodos que se definen como una API que pasa a EXT en forma de un objeto JSON. Estos métodos se exponen a su solicitud:

 // Server-side
 class MyDirectRouter
 {
     public function GetNames(){
        // Get some names from the database
        return $names;
     }
 }

 // Client-side - also, not sure on exact configs here so 
 // you should do your homework
 var store = Ext.create('Ext.data.DirectStore', {
   // blah blah configs
   proxy: {
       url: '/my/direct/router/GetNames',
       type: 'direct'
 });

La tienda le pedirá al servidor que llame a dicho método y el servidor le dará a la tienda la respuesta. Puede hacer algunas cosas limpias, y tener una API fácilmente disponible y expuesta le ahorra una gran cantidad de dolor de cabeza de la configuración de sus rutas, controladores, etc.

ext.Ajax El nombre lo dice todo: AJAX. Hace una llamada a una página en su servidor y devuelve la respuesta. La principal diferencia aquí es que esto llama una página, no un método. La página puede hacer cualquier número de cosas (y seguro, el método también), pero la página es responsable de formatear la salida: JSON, XML, etc. Los métodos del lado del servidor directo se formatearán en última instancia La salida también, pero generalmente se escribe un enrutador que maneja la llamada del método y el formato de salida. Ext.Ajax es mucho más fácil de tratar, ya que no requiere ninguna configuración aparte de tener la página en el otro extremo que maneja la solicitud AJAX, mientras que directamente requiere algunas clases de back-end para manejar el enrutamiento, la exposición a la API, etc. Hay complementos Para diferentes marcos (Kohana, Codesignitor, probablemente WordPress, etc.) y enrollando su cuenta, no puede ser difícil. Para la equidad, ejemplo ext.Ajax:

// Server-side - code of /ajax.php
echo(json_encode(array(
    'DATA' => array(
        array('id' => 3, 'name' => 'john'), 
        array('id' => 4, 'name' => 'Jill')
     )
));

// Client-side
var store = Ext.create('Ext.data.Store', {
    fields: ['id', 'name'], // You should really use a model
    proxy: {
        type: 'ajax',
        url: '/ajax.php',
        reader: {
            type: 'json',
            root: 'DATA'
        }
    }
});

Espero que esto le dé alguna perspectiva, pero en realidad debería entender cómo funciona y aplicar la solución que es mejor para usted y su situación. Lectura de las páginas de API EXT para ambos es un buen lugar para comenzar, y las muestras y la página de demostración cuentan con ejemplos para ambos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top