2010-02-12 10 views
15

मेरे पास एक जेसनस्टोर है जिसे HTTP अनुरोध से वापस लौटने की आवश्यकता है जो 30 सेकंड से अधिक समय लेता है।मैं एक्सटी जेएस जेसनस्टोर टाइमआउट को ओवरराइड कैसे कर सकता हूं?

या तो JsonStore कॉन्फ़िगरेशन पर "टाइमआउट" प्रॉपर्टी सेट करना 30-सेकंड टाइमआउट को ओवरराइड नहीं करता है, न ही प्रॉक्सी सेट करता है (केवल यूआरएल प्रॉपर्टी सेट करने के बजाय) और प्रॉक्सी पर टाइमआउट डालना।

मैं इस टाइमआउट को कैसे बढ़ा सकता हूं?

(मैं Ext जे एस 3.1.1 का उपयोग कर रहा)

var ds = new Ext.data.JsonStore({ 
    autoSave:  true, 
    method:   "POST", 
    /*url:   "search-ajax.aspx", 
    timeout:  120000,*/ 
    root:   "rows", 
    totalProperty: "results", 
    idProperty:  "primarykeyvalue", 
    proxy:  new Ext.data.HttpProxy({ url: "search-ajax.aspx", timeout: 120000 }), 
    fields:  previewColumnConfig, 
    baseParams: { 
     Command: "", 
     ID:  primaryKeyValue, 
     Entity: entityFullName, 
     vetype: ValidationEntityType, 
     vepk:  ValidationEntityPK, 
     now:  (new Date()).getTime() 
     }, 
    writer: new Ext.data.JsonWriter({ 
     encode:  true, 
     listful: false 
     }) 
    }); 

उत्तर

35

आप टाइमआउट अपने संपूर्ण एप्लिकेशन पर ही होना चाहते हैं, यह विश्व स्तर पर सेट Ext.Ajax सिंगलटन पर।

Ext.Ajax.timeout = 120000; //2 minutes 

आप टाइमआउट केवल एक ही अनुरोध पर अलग ढंग से स्थापित किया जाना चाहते हैं, तो आप एक वर में HttpProxy को परिभाषित करने और संशोधित यह में से एक गुण है यह JsonStore config में पार करने से पहले की आवश्यकता होगी। conn संपत्ति केवल उस अनुरोध के लिए उपयोग करने के लिए विकल्प लेती है।

var proxy = new Ext.data.HttpProxy({ url: "search-ajax.aspx" }); 
proxy.conn = { timeout: 120000 }; 
12

प्रॉक्सी या एक वर में कनेक्शन को परिभाषित करने के बिना

proxy:  new Ext.data.HttpProxy(
       new Ext.data.Connection({ 
          url: "search-ajax.aspx", 
          timeout: 120000 })), 
2

आप को परिभाषित कर सकते हैं:

var proxy1 = new Ext.data.HttpProxy(
     { 
      url: 'yourUrl', 
      reader: { 
        type: 'json', 
        root: 'items', 
        totalProperty: 'total' 
       } 
     }); 
proxy1.timeout = 600000; 

यह प्रॉक्सी में पाठक शामिल

+0

= 60000':।।

ही, यदि आप jsonp उपयोग कर रहे हैं यह मेरे लिए काम करता ओवरराइड –

2

मैं जानता हूँ कि इस सवाल पुराना है लेकिन मैंने पाया कि ओवरराइड विकल्प जोड़ना चाहता था जो में काम करता है ExtJS 4.2.2

Ext.override(Ext.data.proxy.Ajax, { timeout: 120000 }); 

मैं आवेदन init तथापि में ओवरराइड पूरी की, मुझे लगता है कि आप कहीं भी पूर्व request को यह ओवरराइड पूरा कर सकता है। विद्यमान स्टोर के लिए ग्रिड आप सीधे `grid.getStore() getProxy() टाइमआउट टाइमआउट को अपडेट कर सकता है पर

Ext.data.proxy.JsonP.timeout = 120000; 
संबंधित मुद्दे