ext.direct vs ext.ajax.
-
12-12-2019 - |
문제
정규 Ext.Ajax 호출에 대한 Ext.Direct의 주요 이점은 무엇입니까?다른 하나를 사용하는 것이 언제입니까?
해결책
정말로, 그것은 당신의 백엔드, 당신이하고 싶은 일과 당신의 상황에 맞는 것에 달려 있습니다. 당신이 꽤 모호한 것을 제시 한 질문은 내 대답이 당신을 위해서만 많이 할 수 있습니다. 나는 두려워합니다. 할 수있는 최선의 방법은 Ext.Direct 및 Ext.Ajax의 API 페이지를 보는 것입니다. Ext.Direct는 (마지막으로 보았을 때) 매우 문서화 된 것처럼 .ajax와 마찬가지로 .ajax는별로 없습니다.
ext.direct - 나는 이것을 마지막 직업에서 시행하기 시작했으며, 올인원은 일어나서 달리기 위해 피타 였지만, 꽤 깔끔한 이익이었습니다. ext.direct를 사용하면 Server를 호출하여 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 등을 포맷하는 데 책임이 있습니다 - JSON direct 메소드는 궁극적으로 포맷됩니다. 출력이 너무 많지만 일반적으로 메소드의 호출 및 출력 형식을 처리하는 라우터가 기록됩니다. ext.ajax는 Ajax 요청을 처리하는 다른 쪽 끝에있는 페이지를 사용하는 것 외에는 사실상 설치가 필요하지 않으며, 직접은 라우팅, 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 페이지를 읽는 것이 좋습니다. 샘플 및 데모 페이지는 두 가지 모두에 대한 예제를 특징으로합니다.