2012-03-12 14 views
13

नियमित Ext.ajax कॉल पर Ext.direct के मुख्य लाभ क्या हैं? मुझे दूसरे पर एक का उपयोग करने पर विचार कब करना चाहिए?Ext.Direct VS Ext.Ajax

+0

युगल वोट अप, लेकिन कोई वास्तविक जवाब नहीं :) आपका सर्वर पक्ष क्या होगा? हमारी परियोजना में हमारे पास माइक्रोसॉफ्ट आरआईए सर्विसेज और एमएसएसक्यूएल डेटाबेस है, इसलिए यह अजाक्स इंटरफेस के साथ जाना था ... लेकिन मेरे पास अच्छी तुलना पेशेवर/विपक्ष आदि नहीं है ... – sha

+0

@sha हम एक लैंप स्टैक चला रहे हैं। –

+0

ऐसा लगता है कि आपको यहां बहुत सारे जवाब नहीं मिलेंगे - शायद इस सवाल को सेन्चा फ़ोरम पर पोस्ट करना चाहें ... – sha

उत्तर

13

वास्तव में, यह आपके बैक एंड पर निर्भर करता है, आप क्या करना चाहते हैं, और आपकी स्थिति क्या फिट बैठता है। जिस प्रश्न को आपने काफी अस्पष्ट प्रस्तुत किया है, इसलिए मेरा जवाब केवल आपके लिए इतना ही कर सकता है कि मैं डरता हूं। सबसे अच्छी बात यह है कि आप Ext.Direct और Ext.Ajax के लिए API पृष्ठों को देखना चाहते हैं। Ext.Direct था (आखिरी बार मैंने देखा) बहुत अच्छी तरह से प्रलेखित, जैसा है .एजाक्स हालांकि बहुत कुछ नहीं है। AJAX।

Ext.Direct - मैंने इसे अपने आखिरी काम पर लागू करना शुरू किया, और सब कुछ यह उठने और चलाने के लिए एक पिटा था, हालांकि लाभ काफी साफ थे। Ext.Direct आपको सर्वर को उन विधियों को निष्पादित करने की अनुमति देता है जिन्हें एक एपीआई के रूप में परिभाषित किया गया है जिसे आप JSON ऑब्जेक्ट के रूप में Ext में पास करते हैं। इन विधियों तो आपके आवेदन के संपर्क में हैं:

// 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' 
}); 

दुकान कहा विधि कॉल करने के सर्वर पूछना होगा और सर्वर की दुकान प्रतिक्रिया दे देंगे। आप कुछ साफ कर सकते हैं, और एक आसानी से उपलब्ध और उजागर एपीआई होने आप अपने कस्टम मार्गों की स्थापना के सिर दर्द का एक बहुत बचाता है, नियंत्रक आदि

Ext.Ajax नाम यह सब कहते हैं: AJAX। आपके सर्वर पर किसी पृष्ठ पर कॉल करता है और प्रतिक्रिया देता है। यहां मुख्य अंतर यह है कि यह एक पृष्ठ नहीं, एक विधि नहीं है। पृष्ठ किसी भी चीज (और निश्चित रूप से, विधि भी हो सकता है) कर सकता है, लेकिन पृष्ठ आउटपुट स्वरूपण के लिए ज़िम्मेदार है - JSON, XML, आदि। सर्वर-साइड डायरेक्ट विधियां अंततः आउटपुट को प्रारूपित करती हैं, लेकिन आम तौर पर एक राउटर लिखा जाता है जो विधि और आउटपुट स्वरूपण की कॉलिंग को संभालता है। Ext.Ajax से निपटने के लिए बहुत आसान है क्योंकि इसे दूसरे अंत में पृष्ठ को रखने से वर्चुअल रूप से कोई सेटअप नहीं है जो AJAX अनुरोध को संभालता है, जबकि डायरेक्ट को रूटिंग, एपीआई एक्सपोजर इत्यादि को संभालने के लिए कुछ बैक-एंड क्लास की आवश्यकता होती है। प्लगइन हैं विभिन्न ढांचे के लिए (कोहाना, कोडइग्निटर, शायद वर्डप्रेस इत्यादि) और खुद को रोल करना संभवतः मुश्किल नहीं हो सकता है। निष्पक्षता के लिए, उदाहरण 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' 
     } 
    } 
}); 

मुझे आशा है कि यह आप कुछ परिप्रेक्ष्य देता है, लेकिन वास्तव में आप कैसे समझना चाहिए हर एक काम करता है और समाधान आप और अपनी स्थिति के लिए सबसे अच्छा है कि लागू होते हैं। दोनों के लिए अतिरिक्त एपीआई पेज पढ़ना शुरू करने के लिए एक अच्छी जगह है, और नमूने & डेमो पेज दोनों के लिए उदाहरण सुविधाएँ हैं।