Ext.direct vs ext.ajax.
-
12-12-2019 - |
Вопрос
Каковы основные преимущества ext.direct через регулярные вызовы ext.ajax?Когда я должен учитывать, используя один над другим?
Решение
Действительно, это зависит от вашего спина, что вы хотите сделать, а что соответствует вашей ситуации. Вопрос, который вы подарили его довольно расплывчатым, поэтому мой ответ может сделать только для вас, я боюсь. Лучшее, что вы можете сделать, это посмотреть на страницы API для Ext.Direct и Ext.ajax. Ext.direct был (в прошлый раз, когда я выглядел) очень хорошо документирован, как есть .ajax, однако, не много для .ajax.
ext.direct - Я начал реализовать это на моей последней работе, и все-во-все это была пита, чтобы встать и бежать, однако преимущества после того, как были довольно аккуратно. Ext.direct позволяет вызвать сервер для выполнения методов, которые определяются как API, который вы проходите к EXT в форме объекта JSON. Эти методы затем подвергаются вашему применению:
// 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 и т. Д. Серверная сторона
// 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 для обоих - это хорошее место для начала, и страница образцов и демонстрация демонстрирует примеры для обоих.