Domanda

Quali sono i principali vantaggi di ext.direct sulle chiamate est.ajax regolari?Quando dovrei considerare di usarne uno sopra l'altro?

È stato utile?

Soluzione

Davvero, dipende dal tuo back-end, cosa vuoi fare, e cosa si adatta alla tua situazione. La domanda che hai presentato è abbastanza vaga, quindi la mia risposta può fare solo così tanto per te ho paura. La cosa migliore che puoi fare è guardare le pagine API per ext.direct ed ext.ajax. Ext.direct è stato (l'ultima volta che ho guardato) molto ben documentato, come è .ajax Tuttavia non c'è molto da .ajax.

ext.direct - Ho iniziato a implementarti al mio ultimo lavoro, e tutto-in-tutto è stato una pita per alzarsi e in esecuzione, tuttavia i benefici dopo essere stati accurati. Ext.Direct consente di chiamare il server per eseguire metodi definiti come API che passa a EST sotto forma di un oggetto JSON. Questi metodi sono quindi esposti alla tua applicazione:

 // 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'
 });
.

Il negozio chiederà al server di chiamare detto metodo e il server fornirà il negozio la risposta. Puoi fare alcune cose ordinate e avere un'API prontamente disponibile ed esposta ti risparmia molto il mal di testa per impostare i tuoi percorsi personalizzati, controller ecc.

ext.ajax Il nome dice tutto: Ajax. Effettua una chiamata a una pagina sul tuo server e restituisce la risposta. La differenza principale qui è che questo chiama una pagina, non un metodo. La pagina potrebbe fare qualsiasi numero di cose (e sicuro, il metodo potrebbe anche), ma la pagina è responsabile della formattazione dell'output - JSON, XML, ecc. Il lato server Direct i metodi deriderà in definitiva Anche l'uscita, ma di solito è scritto un router che gestisce la chiamata del metodo e la formattazione di uscita. Ext.ajax è molto più facile da affrontare in quanto non richiede praticamente nessuna configurazione di oltrepassare la pagina all'altra estremità che gestisce la richiesta Ajax, mentre Direct richiede alcune classi di back-end per gestire il routing, l'esposizione API, ecc. Ci sono plug-in Per diversi quadri (Kohana, Codeignitor, probabilmente wordpress ecc.) E rotolando il tuo non è possibile essere difficile. Per equità, esempio 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'
        }
    }
});
.

Spero che questo ti dà qualche prospettiva, ma davvero dovresti capire come ognuno lavora e applica la soluzione che è la migliore per te e la tua situazione. Leggere le pagine API EXT per entrambi è un buon punto di partenza, e la pagina dei campioni e delle demos ha esempi per entrambi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top