extjs - Ext में_dc पैरामीटर को हटा रहा है




etag (9)

Ext JS 4.1 का उपयोग करके, और निम्न कोड को app.js जोड़ने के बाद, _dc पैरामीटर गायब हो जाता है:

// Disable _dc parameter

Ext.Loader.setConfig({
    disableCaching: false
});

// My App

Ext.application({

https://code.i-harness.com

Ext का उपयोग करके, डिफ़ॉल्ट Ext.Ajax GET-request _dc पैरामीटर में जोड़ें। उदाहरण के लिए

GET /ConnViewProcessing/?_dc=1263286227619

इस पैरामीटर को कैसे हटाएं?

पीएस: ETag और If-None-Match लिए मैन्युअल रूप से प्रतिक्रिया कैश करना आवश्यक है।


इस तरह मैंने यह किया:

Ext.Ajax.request({
    url: url,
    disableCaching:false
});

एकमात्र तरीका मैं अपने प्रोजेक्ट पर विश्व स्तर पर ExtJS 4.2.x में _dc को अक्षम करने में सक्षम था:

Ext.define('Ext.data.Connection', {override:'Ext.data.Connection', disableCaching:false });
Ext.define('Ext.data.proxy.Server', {override:'Ext.data.proxy.Server', noCache:false });
Ext.define('Ext.data.JsonP', {override:'Ext.data.JsonP', disableCaching:false });

यह बदसूरत है, लेकिन कोई अन्य विचार है?


ध्यान दें कि Ext.Loader का उपयोग ExtJS 5 में बदल गया है।

ExtJS 5 में, कैशिंग अक्षम किया जा सकता है:

  • अस्थायी रूप से यूआरएल के अंत में " ?cache " जोड़कर
  • 1 के मूल्य के साथ 'ext-cache' नामक कुकी सेट करके
  • या फ़ाइल को संपादित करके .sencha/app/Boot.js और '_config.disableCaching ' प्रॉपर्टी को सत्य होने के लिए सेट करना (गतिशील लुकअप को ओवरराइट करना)।

मैं ExtJS 4.2 का उपयोग कर रहा हूं, लेकिन इसे Ext JS 4.1 और चालू करने के लिए काम करना चाहिए। प्रॉक्सी में नोकैच नामक एक संपत्ति है जिसे आपको इसे गलत पर सेट करना चाहिए।

Ext4.define('Server',{
    extend: 'Ext4.data.Model',
    fields: [
            {name: 'id'},
            {name: 'key'},
            {name: 'value'}
    ],
    proxy: {
            type: 'rest',
            url : 'yaddayaddayadda',
            noCache: false,
            reader : {
                    type: 'json'
            }

    }
});

मेरा कोड Ext4 कहता है। ऐसा इसलिए है क्योंकि मैं सैंडबॉक्स मोड का उपयोग कर रहा हूं क्योंकि मैं पुराना एक्सएस जेएस 3 एक्स कोड 4.2 में ले जाता हूं


मैंने फैसला किया कि मैं चाहता हूं कि कैश क्लाइंट साइड को नष्ट कर दे, लेकिन सर्वर की तरफ मैं अपने कैशिंग तंत्र (PHP के एपीसी) का उपयोग कर रहा था।

मैंने एक्स्ट AJAX अनुरोध में _dc छोड़ा, लेकिन फिर इसे REQUEST_URI से हटा दिया, और उसके बाद REQUEST_URI को कैश कुंजी के आधार के रूप में उपयोग करें

मुझे यह उपयोगी मिला: क्वेरी स्ट्रिंग से एक पैरामीटर को हटाने के लिए नियमित अभिव्यक्ति


यह extjs 4.0.7 के साथ काम करना चाहिए:

Ext.Loader.config.disableCaching = false;

app.json सीएमडी 6.x के साथ इसे पूरा करने का सही तरीका app.json में एक (ग्लोबल) स्विच सेट app.json (क्योंकि उन सभी हैक्स और ओवरराइड कार्यक्षमता के साथ अनावश्यक रूप से हस्तक्षेप कर सकते हैं):

"loader": {
    "cache": true
},

फिर अनुप्रयोग के bootstrap.json को अद्यतन करने के लिए, sencha app refresh चलाएं।

वैकल्पिक रूप से, कोई Ext.Loader को कॉन्फ़िगर कर सकता है (रन-टाइम पर):

Ext.Loader.setConfig({disableCaching: false});

Ext.Ajax (प्रति अनुरोध) से संबंधित, ऊपर की ओर स्क्रॉल करते हुए और वास्तविक प्रश्न को पढ़ने पर:

Ext.Ajax.request({url: '/ConnViewProcessing', disableCaching: false});

नतीजा: लिखित अनुरोधों पर और अधिक _ डीसी पैरामीटर नहीं।

@ से सेन्चा सीएमडी 6.x - माइक्रो्रोलर


disableCaching पर झंडा disableCaching को false (डबल अस्वीकरण - yay!) पर Ext.data.Connection करना चाल Ext.data.Connection चाहिए।

अधिक जानकारी के लिए, disableCaching कैशिंग- disableCaching देखें।

(कृपया ध्यान दें कि एक्स्ट में कुछ कक्षाओं में विकल्प उपलब्ध है, इसलिए आपको थोड़ा सा मक्का करना पड़ सकता है।)