2012-03-12 6 views
13

通常のExt.ajaxコールよりExt.directの主な利点は何ですか?いつ他のものを使ってみるべきですか?Ext.Direct VS Ext.Ajax

+0

カップルは投票しますが、本当の答えはありません:)あなたのサーバー側はどうなりますか?私たちのプロジェクトでは、Microsoft RIA ServicesとMSSQLデータベースを持っていましたので、Ajaxインターフェイスを使用することになっていました...しかし、私は良い比較賛否両論はありません... – sha

+0

@sha LAMPスタックを実行しています。 –

+0

あなたはここで多くの回答を得られないようです - この質問をSenchaフォーラムに投稿したいかもしれません... – sha

答えて

13

本当に、それはあなたのバックエンド、あなたがしたいこと、そしてあなたの状況に合ったものです。あなたが提示した質問はかなり漠然としているので、私の答えはあなたのためだけに恐れるのです。あなたができる最良のことは、Ext.DirectとExt.AjaxのAPIページを見ることです。 Ext.Directは(最後に私が見た)非常によく文書化されていましたが、.Ajaxはあまりありません.Ajaxにはあまりありません。

Ext.Direct - 私はこの最後の仕事でこれを実装し始めました。そして、オールインオールでは、起動して実行するためのPITAでしたが、その後の利点はきれいでした。 Ext.Directでは、JSONオブジェクトの形式でExtに渡すAPIとして定義されているメソッドを実行するためにサーバを呼び出すことができます。次に、これらのメソッドはアプリケーションに公開されます。

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

ストアは、サーバーにメソッドを呼び出すよう要求し、サーバーはストアに応答を返します。 AJAX:あなたは名前がそれをすべて言うExt.Ajaxなど

をいくつかきちんと物事を行う、かつ容易に入手可能な露出APIを持つことは、あなたのカスタムルートを設定するの頭痛の多くを保存し、コントローラをすることができます。サーバー上のページを呼び出し、応答を返します。主な違いは、これはメソッドではなくページを呼び出すことです。ページは任意の数の処理を行うことができますが、その方法も可能ですが、そのページはJSON、XMLなどの出力をフォーマットします。サーバー側直接メソッドは最終的に出力をフォーマットしますが、通常、メソッドの呼び出しと出力書式を処理するルータが記述されます。 Ext.Ajaxは、AJAXリクエストを処理するページを別に置くことを除いて、セットアップをほとんど必要としないため、直接処理する必要があります.Directでは、ルーティング、API公開などを処理するためにいくつかのバックエンドクラスが必要です。別のフレームワーク(Kohana、CodeIgnitor、おそらくWordPressなど)であなた自身を動かすことは、おそらく難しくありません。公平性のための、例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' 
     } 
    } 
}); 

私は、これはあなたにいくつかの視点を与える願っていますが、本当にあなたは、それぞれがどのように動作するかを理解し、あなたとあなたの状況に最も適したソリューションを適用する必要があります。両方のExt APIページを読むのは良い場所です。サンプルの&デモページには両方のサンプルがあります。