سؤال

استخدام تحدد, ، إفتراضي ext.ajax. إضافة إلى الحصول على طلب _dc معامل. علي سبيل المثال

GET /ConnViewProcessing/?_dc=1263286227619

كيفية إزالة هذه المعلمة؟

ملاحظة: من الضروري استجابة ذاكرة التخزين المؤقت يدويا ETag و If-None-Match.

هل كانت مفيدة؟

المحلول

جلس disableCaching الخيار إلى خطأ:

Ext.Ajax.disableCaching = false;

نصائح أخرى

باستخدام Ext JS 4.1، وبعد إضافة التعليمات البرمجية التالية إلى app.js, ، ال _dc المعلمة تختفي:

// Disable _dc parameter

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

// My App

Ext.application({

الطريقة المناسبة لإنجاز ذلك مع Sencha CMD 6.x هو تعيين مفتاح (عالمي) في app.json (لأن كل تلك الاختراقات والتغلب قد تتداخل دون داع مع الوظيفة):

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

ثم اركض sencha app refresh, ، من أجل تحديث التطبيق bootstrap.json.

بدلا من ذلك، يمكن للمرء تكوين Ext.Loader (في وقت التشغيل):

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

عند التمرير لأعلى وقراءة السؤال الفعلي، فيما يتعلق Ext.Ajax (لكل طلب):

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

النتيجة: لا مزيد من المعلمات _DC على الطلبات النصية.

@يرى Sencha CMD 6.x - Microloader.

لاحظ أن استخدام Expload.loader قد تغير في Extjs 5.

في Extjs 5، يمكن تعطيل التخزين المؤقت:

  • مؤقتا عن طريق إضافة "?cache"حتى نهاية عنوان URL
  • عن طريق تحديد ملف تعريف الارتباط يسمى "تقرح ذاكرة التخزين المؤقت" بقيمة 1
  • أو عن طريق تحرير الملف .sencha/app/Boot.js ووضع '_config.disableCaching'الخاصت أن تكون صحيحة (الكتابة فوق البحث الديناميكي).

أنا أستخدم extjs 4.2، ولكن يجب أن يعمل هذا في تحويلة JS 4.1 وعلى. في الوكيل، هناك خاصية تسمى NoCache يجب عليك ضبط هذا على خطأ.

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. .

هذا يجب أن يعمل مع extjs 4.0.7:

Ext.Loader.config.disableCaching = false;

وضع العلم disableCaching ل false (نفي مزدوج - ياي!) على ext.data.connection. يجب أن تفعل الخدعة.

لمزيد من، انظر إلى DisableCaching.-توثيق.

(يرجى ملاحظة أنه يبدو أن هناك عددا قليلا جدا من الفئات الموجودة في Exper لديها الخيار المتاح، لذلك قد تضطر إلى الوحل قليلا.)

بالنسبة لأولئك الذين يرغبون في تعيين "DisableCaching: False" في Sencha Architect 3+، وهنا كيف ..:

  1. في نافذة Inspector Project، حدد العقدة الأعلى، "التطبيق"

  2. ثم في نافذة "التكوين" أدناه حيث قمت بتعيين خصائص الكائنات، إلخ، حدد "Roader Config" .. في حالتي، اضطررت إلى النقر فوق "+" إلى يمين هذا كما لم أقم بتعيين أي عناصر حتى الآن وبعد سيؤدي ذلك إلى إنشاء كائن جديد "loaderxx" في نافذة "مفتش المشروع" أعلاه؛ loader25 في حالتي.

  3. الآن إما حدد الكائن الجديد في إطار "Project Inspector"، أو انقر فوق السهم الأيمن بجانب "LoaderXX" الجديد (Loader25 في حالتي). هذا سوف يأخذك إلى خصائص الكائن.

  4. قم بإلحاد عنصر "DisableCaching".

احفظ المشروع وتحديث نافذة المتصفح، واستمتع بنقاط التوقف المستمرة، إلخ، إلخ في Chrome.

الطريقة الوحيدة التي كنت قادرا على تعطيل _DC في Extjs 4.2.x على مستوى العالم على مشروعي:

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.Ajax.request({
    url: url,
    disableCaching:false
});

يمكنني استخدام ext.net على رأس ext.js. يضيف بعض أكثر الفودو إلى Ext.js ... حاولت التخلص من DC = المعلمة، ولكن جميع التكوينات المذكورة لا تعمل. لذلك، هذا هو الحل الفعال للأوبر، Uber القذرة:

Ext.Date.now = function () { return ""; }

بقدر ما أستطيع أن أرى، يتم استخدام ext.date.now () فقط في منطق التخزين المؤقت. لذلك يجب أن يكون النسبية حفظ.

قررت أنني أردت دمرت ذاكرة التخزين المؤقت من جانب العميل، لكن جانب الخادم الذي كنت أستخدم آلية التخزين المؤقت الخاصة بي (PHP's APC).

تركت _dc في طلب تحويلة Ajax، ولكن بعد ذلك إزالته من طلب الطلب، ثم استخدم RESTALD_URI كأساس لمفتاح ذاكرة التخزين المؤقت

لقد وجدت هذه مفيدة: تعبير منتظم لإزالة معلمة واحدة من سلسلة الاستعلام

إذا كنت تتطور تحت Sencha CMD، فيمكنك القيام بذلك

http://localhost:1841/?disableCacheBuster

أو فقط

http://localhost:1841/?cache
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top