2012-03-12 2 views
13

Quali sono i principali vantaggi di Ext.direct rispetto alle normali chiamate Ext.ajax? Quando dovrei prendere in considerazione l'utilizzo di uno rispetto all'altro?Ext.Direct VS Ext.Ajax

+0

Le coppie votano, ma nessuna risposta reale :) Quale sarà il tuo lato server? Nel nostro progetto abbiamo i servizi Microsoft RIA e il database MSSQL, quindi era necessario utilizzare l'interfaccia Ajax ... Ma non ho un buon confronto pro/cons ecc ... – sha

+0

@sha Stiamo eseguendo uno stack LAMP. –

+0

Sembra che qui non otterrai molte risposte - potresti voler pubblicare questa domanda sui forum di sencha ... – sha

risposta

13

In realtà, dipende dal tuo back-end, da cosa vuoi fare e da cosa si adatta alla tua situazione. La domanda che hai presentato è abbastanza vaga, quindi la mia risposta non può che fare così tanto per te, ho paura. La cosa migliore che puoi fare è guardare le pagine API per Ext.Direct e Ext.Ajax. Ext.Direct era (l'ultima volta che guardavo) molto ben documentato, così come Ajax, ma non c'è molto da fare. Ajax.

Ext.Direct - Ho iniziato a implementare questo al mio ultimo lavoro, e nel complesso è stato un PITA per essere installato e funzionante, tuttavia i benefici dopo erano abbastanza accurati. Ext.Direct consente di chiamare il server per eseguire metodi definiti come API che si passa a Ext sotto forma di oggetto JSON. Questi metodi sono quindi esposti alla vostra 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 sarà chiedere al server di chiamare tale metodo e il server darà il negozio la risposta. È possibile fare cose fantastiche, e con un'API prontamente disponibile ed esposto consente di risparmiare un sacco di mal di testa di creare i percorsi personalizzati, controllori ecc

Ext.Ajax Il nome dice tutto: AJAX. Effettua una chiamata a una pagina sul server e restituisce la risposta. La differenza principale qui è che questo chiama una pagina, non un metodo. La pagina può fare qualsiasi numero di cose (e sicuramente anche il metodo), ma la pagina è responsabile della formattazione dell'output - JSON, XML, ecc. I metodi diretti dal lato server formeranno infine anche l'output, ma di solito viene scritto un router che gestisce la chiamata del metodo e la formattazione dell'output. Ext.Ajax è molto più facile da gestire in quanto non richiede praticamente nessuna configurazione oltre ad avere 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 plugin per quadri diversi (Kohana, CodeIgnitor, probabilmente WordPress ecc.) e il rollover non può essere difficile. Per correttezza, ad 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 punto di vista, ma in realtà è necessario comprendere come funzionino e applicare la soluzione che è meglio per voi e la vostra situazione. La lettura delle pagine Ext API per entrambi è un buon punto di partenza e la pagina dei campioni & presenta esempi per entrambi.

Problemi correlati