Ext.direct与常规Ext.ajax调用的主要优点是什么?我什么时候应该考虑使用一个?
真的,这取决于你的后端,你想做什么,什么适合你的情况.你提出的问题相当模糊,所以我的答案只能为你而烦恼.您可以做的最好的事情是查看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等.服务器端Direct方法将最终格式化输出,但通常是写入的路由器处理方法的调用和输出格式. 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页面是一个很好的起点,而样品&演示页面功能的两个例子.