Question

Quels sont les principaux avantages de ext.direct sur des appels réguliers ext.ajax?Quand devrais-je envisager d'utiliser un sur l'autre?

Était-ce utile?

La solution

Vraiment, cela dépend de votre back-end, ce que vous voulez faire et ce qui correspond à votre situation. La question que vous avez présentée son assez vague, alors ma réponse ne peut que faire autant pour vous, j'ai peur. La meilleure chose à faire est de regarder les pages API pour ext.direct et ext.ajax. Ext.direct était (la dernière fois que j'ai regardé) très bien documenté, comme l'ajax mais il n'y a pas beaucoup à .ajax.

ext.direct - J'ai commencé à la mettre en œuvre à mon dernier emploi, et tout cela était un pita pour se lever et courir, mais les avantages suivants étaient assez soignés. Ext.direct vous permet d'appeler le serveur pour exécuter des méthodes définies comme une API que vous passez à EXT sous la forme d'un objet JSON. Ces méthodes sont ensuite exposées à votre application:

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

Le magasin demandera au serveur d'appeler ladite méthode et le serveur donnera au magasin la réponse. Vous pouvez faire des choses soignées et avoir une API facilement disponible et exposée vous permet d'économiser beaucoup de maux de tête de la configuration de vos itinéraires personnalisés, des contrôleurs, etc.

ext.ajax Le nom dit tout: ajax. Fait appel à une page sur votre serveur et retourne la réponse. La principale différence ici est que cela appelle une page, pas une méthode. La page peut faire n'importe quel nombre de choses (et sûr, la méthode peut aussi), mais la page est responsable du formatage de la sortie - JSON, XML, etc. Le côté serveur directe sera finalement formater La sortie aussi, mais généralement un routeur est écrit qui gère l'appel de la méthode et du formatage de sortie. EXT.AJAX est beaucoup plus facile à traiter car il ne nécessite pratiquement aucune configuration de la page à l'autre extrémité qui gère la demande AJAX, tandis que directe nécessite des classes de back-end pour gérer le routage, l'exposition de l'API, etc. Il existe des plugins. Pour différents cadres (Kohana, Codeignitor, probablement WordPress, etc.) et le rouleau ne peut pas être difficile. Pour l'équité, Exemple 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'
        }
    }
});

J'espère que cela vous donne une perspective, mais vous devez vraiment comprendre comment chacun fonctionne et applique la solution qui convient le mieux à vous et à votre situation. Lecture des pages EXT API pour les deux est un bon endroit pour démarrer, et la page Samples & Demos présente des exemples pour les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top