문제

정규 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 페이지를 읽는 것이 좋습니다. 샘플 및 데모 페이지는 두 가지 모두에 대한 예제를 특징으로합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top