Ext.direct vs ext.ajax.
-
12-12-2019 - |
Domanda
Quali sono i principali vantaggi di ext.direct sulle chiamate est.ajax regolari?Quando dovrei considerare di usarne uno sopra l'altro?
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.