Ramal.Directo VS Ext.Forum

Quais são as principais vantagens do Ext.directamente sobre o extracto normal.o ajax liga? Quando devo considerar usar um em vez do outro?

Author: Levi Hackwith, 2012-03-12

1 answers

A sério, depende das tuas costas, do que queres fazer e do que se encaixa na tua situação. A pergunta que fez é bastante vaga, por isso a minha resposta não pode fazer muito por si. A melhor coisa que você pode fazer é olhar para as páginas API para Ext.Directo e Ext.Forum. Ramal.Direct was (last time I looked) very well documented, as is .Ajax, no entanto, não há muito para fazer .Forum.

Ext.Comecei a implementar isto no meu último trabalho, e tudo era uma PITA para ... levantar-se e correr, no entanto, os benefícios depois foram muito limpo. Ramal.Direct permite-lhe ligar para o servidor para executar métodos que são definidos como uma API que passa para Ext na forma de um objecto JSON. Estes métodos são então expostos à sua aplicação:

 // 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 irá pedir ao servidor para ligar para o referido método e o servidor irá dar a resposta à loja. Você pode fazer algumas coisas limpas, e ter uma API prontamente disponível e exposta poupa-lhe muito da dor de cabeça de configurar o seu rotas personalizadas, controladores, etc.

Ext.Ajax o nome diz tudo: AJAX. Faz uma chamada para uma página em seu servidor e retorna a resposta. A principal diferença aqui é que isto chama uma página, não um método. A página pode fazer qualquer número de coisas( e certo, o método também pode), mas a página é responsável pela formatação da saída - JSON, XML, etc. O servidor-side Direct métodos irão finalmente formatar a saída também, mas normalmente um roteador é escrito que lida com a chamada do método e da formatação de saída. Ramal.Ajax é muito mais fácil de lidar com, pois requer virtualmente nenhuma configuração, além de ter a página na outra extremidade que lida com o pedido AJAX, enquanto o direto requer algumas classes back-end para lidar com roteamento, exposição API, etc. Existem plugins para diferentes frameworks (Kohana, CodeIgnitor, provavelmente WordPress etc) e rolar o seu próprio não pode ser difícil. Por justiça, por 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 isto te dê alguma perspectiva., mas realmente você deve entender como cada um trabalha e aplicar a solução que é melhor para você e sua situação. Ler as páginas da API Ext para ambos é um bom lugar para começar, e a página Samples & Demos apresenta exemplos para ambos.
 13
Author: phatskat, 2012-04-19 20:37:31