使用 Ext, 默认 Ext.阿贾克斯 增加获得请求 _dc 参数。例如

GET /ConnViewProcessing/?_dc=1263286227619

如何消除这种参数?

PS:这是必要的手动缓响应 ETagIf-None-Match.

有帮助吗?

解决方案

设置disableCaching选项设置为false:

Ext.Ajax.disableCaching = false;

其他提示

使用Ext JS的4.1,并添加以下代码来app.js之后,_dc参数消失:

// Disable _dc parameter

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

// My App

Ext.application({

来实现,与煎茶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参数

煎茶Cmd的6.x的 - 该微加载

请注意,Ext.Loader 的使用在 ExtJS 5 中发生了变化。

在 ExtJS 5 中,可以禁用缓存:

  • 暂时添加“?cache” 到 URL 末尾
  • 通过设置一个名为“ext-cache”的 cookie,其值为 1
  • 或通过编辑文件 .sencha/app/Boot.js 并设置 '_config.disableCaching' 属性为 true(覆盖动态查找)。

我使用ExtJS的4.2,但是这应该适用于Ext JS的4.1和。在代理有一个叫NOCACHE应将此设置为false属性。

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。是因为我使用的沙箱模式作为我移动旧分机JS 3×代码到4.2

此应与ExtJS的4.0.7工作:

Ext.Loader.config.disableCaching = false;

设置标志 disableCachingfalse (双重否定-耶!) 在 Ext.数据。连接 应该做的伎俩。

更多,看看 disableCaching-文件。

(请注意,相当多的类Ext似乎有可供选择,所以你可能会有淤泥围绕一点。)

对于那些想要设置“disableCaching”的人:false” 在 Sencha Architect 3+ 中,具体方法如下:

  1. 在项目检查员窗口中,选择顶点“应用程序”

  2. 然后在您设置对象属性等的“配置”窗口中,选择“ Loader Config” ..就我而言 我必须点击右边的 " ",因为我没有设置任何 项目。这将在 "项目 检查员 "窗口;以我为例,Loader25。

  3. 现在,要么在“ Project Inspector”窗口中选择新对象,要么单击新的“ LoaderXx”(在我的情况下loader25)旁边的右箭头。这将带您进入对象的属性。

  4. 取消勾选“禁用缓存”项。

保存项目并刷新浏览器窗口,并在 Chrome 中享受持久断点等。

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

我用Ext.NET上Ext.JS.的顶部它增加了一些巫术来Ext.js ... 我试图摆脱DC =参数,但所有提及的结构没有工作。所以,这是我的超级效益,超级脏溶液:

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

据我所看到的,Ext.Date.now()只用于高速缓存逻辑。所以它应该是相对性保存。

我决定,我想缓存被破坏客户端,但是服务器端我是用我自己的缓存机制(PHP的APC)。

余留在分机AJAX请求的_dc,但是然后从REQUEST_URI除去它,然后使用REQUEST_URI作为缓存键

的基础

我发现这个有用:正则表达式,以除去一个参数从查询字符串

如果您在煎茶CMD发展,你可以像这样

http://localhost:1841/?disableCacheBuster

或只是

http://localhost:1841/?cache
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top