Pergunta

Quais são as principais vantagens do Ext.direct em relação às chamadas regulares do Ext.ajax?Quando devo considerar usar um em vez do outro?

Foi útil?

Solução

Na verdade, depende do seu back-end, do que você deseja fazer e do que se adapta à sua situação.A pergunta que você apresentou é bastante vaga, então minha resposta só pode fazer muito por você, infelizmente.A MELHOR coisa que você pode fazer é consultar as páginas da API Ext.Direct e Ext.Ajax.O Ext.Direct estava (da última vez que olhei) muito bem documentado, assim como o .Ajax, porém não há muito no .Ajax.

Ext.Direto - Comecei a implementar isso no meu último trabalho e, no geral, foi uma tarefa difícil colocá-lo em funcionamento, mas os benefícios depois foram bem legais.Ext.Direct permite chamar o servidor para executar métodos definidos como uma API que você passa para Ext na forma de um objeto JSON.Esses métodos são então expostos ao seu aplicativo:

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

A loja pedirá ao servidor para chamar o referido método e o servidor dará a resposta à loja.Você pode fazer algumas coisas legais, e ter uma API prontamente disponível e exposta evita muita dor de cabeça ao configurar suas rotas personalizadas, controladores, etc.

Ext.Ajax O nome diz tudo:AJAX.Faz uma chamada para uma página no seu servidor e retorna a resposta.A principal diferença aqui é que isso chama uma página, não um método.A página pode fazer inúmeras coisas (e claro, o método também), mas a página é responsável pela formatação da saída - JSON, XML, etc.O lado do servidor Direto Os métodos acabarão por formatar a saída também, mas geralmente é escrito um roteador que lida com a chamada do método e a formatação da saída.Ext.Ajax é muito mais fácil de lidar, pois praticamente não requer nenhuma configuração além de ter a página na outra extremidade que lida com a solicitação AJAX, enquanto Direct requer algumas classes de back-end para lidar com roteamento, exposição de API, etc.Existem plug-ins para diferentes estruturas (Kohana, CodeIgnitor, provavelmente WordPress, etc.) e criar o seu próprio não pode ser difícil.Para ser justo, exemplo 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 isso lhe dê alguma perspectiva, mas na verdade você deve entender como cada um funciona e aplicar a solução que for melhor para você e sua situação.Ler as páginas Ext API para ambos é um bom lugar para começar, e a página Samples & Demos apresenta exemplos para ambos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top