ext.direct vs ext.ajax.
-
12-12-2019 - |
質問
通常のext.ajax呼び出しのext.directの主な利点は何ですか?もう一方を使って検討する必要がある?
解決
本当に、それはあなたのバックエンド、あなたがやりたいこと、そしてあなたの状況に合ったものによって異なります。あなたがかなり曖昧に発表した質問であるので、私の答えは私が恐れているあなたのためだけにそれほど行うことができます。あなたができる最善のことは、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'
});
.
ストアはサーバに前記メソッドを呼び出し、サーバーはストアに応答を与えます。あなたはいくつかのきれいなものをすることができます、そして、すぐに利用可能かつ露出したAPIを持っているあなたはあなたのカスタムルート、コントローラなどを設定するための多くの頭痛を保存します。
ext.ajax その名前はそれをすべてajaxに言う。サーバー上のページを呼び出して、応答を返します。ここでの主な違いは、これがメソッドではなくページを呼び出すことです。このページは任意の数のものを実行することができます(そして確かに、方法も可能です)、ページは出力 - JSON、XMLなどのフォーマットを担当します。サーバー側ダイレクトメソッドは最終的にフォーマットします。出力も、通常はメソッドの呼び出しと出力フォーマットを処理するルータが書き込まれます。 ext.ajaxは、Ajax要求を処理するもう一方の端にページを持たせることを実質的に扱う必要がなくなり、Directはルーティング、APIの露出などを処理するためにいくつかのバックエンドクラスを必要とします。プラグインがありますさまざまなフレームワーク(コハナ、コード同期、おそらく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ページを読み取るのは、開始するのに適した場所、およびサンプルとデモページの両方の例を特色にします。