使用Ext,默认Ext.Ajax添加到GET请求_dc参数。例如
_dc
GET /ConnViewProcessing/?_dc=1263286227619
如何删除此参数?PS:有必要手动缓存对ETag和If-None-Match的响应。
ETag
If-None-Match
vulvrdjw1#
将disableCaching选项设置为false:
disableCaching
Ext.Ajax.disableCaching = false;
33qvvth12#
使用Ext JS 4.1,将以下代码添加到app.js后,_dc参数消失:
app.js
// Disable _dc parameter Ext.Loader.setConfig({ disableCaching: false }); // My App Ext.application({
vwoqyblh3#
使用Sencha Cmd 6.x实现这一点的正确方法是在app.json中设置一个(全局)开关(因为所有这些攻击和覆盖可能会对功能产生不必要的干扰):
app.json
"loader": { "cache": true },
然后运行sencha app refresh,以更新应用程序的bootstrap.json。或者,可以配置Ext.Loader(在运行时):
sencha app refresh
bootstrap.json
Ext.Loader
Ext.Loader.setConfig({disableCaching: false});
当向上滚动并阅读关于Ext.Ajax的实际问题时(每个请求):
Ext.Ajax
Ext.Ajax.request({url: '/ConnViewProcessing', disableCaching: false});
结果是:脚本化请求上不再有_dc参数。@见Sencha Cmd 6.x - The Microloader。
ercv8c1e4#
请注意,Ext.Loader在ExtJS 5中的使用已更改。在ExtJS 5中,可以禁用缓存:
?cache
.sencha/app/Boot.js
'_config.disableCaching
vhipe2zx5#
我使用的是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.的原因是,当我将旧的ExtJS3x代码移到4.2时,我使用了沙箱模式
kx5bkwkv6#
这应该适用于extjs 4.0.7:
Ext.Loader.config.disableCaching = false;
bksxznpy7#
将标志disableCaching设置为e1d1e(双重否定-yay!)在Ext.data上。连接应该可以做到这一点。有关更多信息,请参阅disableCaching文档。(请注意,Ext中相当多的类似乎都有可用的选项,因此您可能需要做一些修改。)
zpgglvta8#
对于那些想在Sencha Architect 3+中设置“disableCaching:false”的用户,以下是如何设置的…:1.在项目检查器窗口中,选择顶部节点“应用程序”1.然后在您设置对象属性等的“Config”窗口下方,选择“Loader Config”。在我的情况下,我必须单击右侧的“+”,因为我尚未设置任何项目。这将在上面的“项目检查器”窗口中创建一个新的“LoaderXX”对象;Loader25在我的案例中。1.现在要么在“项目检查器”窗口中选择新对象,要么单击新“LoaderXX”旁边的右箭头(在我的例子中是Loader25)。这将带您进入对象的属性。1.取消勾选“disableCaching”项。保存项目并刷新浏览器窗口,在Chrome中享受持久断点等。
cgh8pdjw9#
我能够在项目中全局禁用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 });
这很难看,但还有其他想法吗?
lh80um4z10#
我就是这样做的:
Ext.Ajax.request({ url: url, disableCaching:false });
xe55xuns11#
我决定要销毁客户端的缓存,但在服务器端,我使用了自己的缓存机制(PHP的APC)。我在Ext ajax请求中保留了_dc,但随后将其从request_URI中删除,然后使用request-URI作为缓存键的基础我发现这很有用:Regular expression to remove one parameter from query string
0lvr5msh12#
如果你在Sencha CMD下开发,你可以这样做
http://localhost:1841/?disableCacheBuster
或者只是
http://localhost:1841/?cache
ht4b089n13#
对于所有正在寻找在新版本中禁用它的方法的人:
proxy: { type: 'ajax', noCace: false }
mqxuamgl14#
我在Ext.JS上使用Ext.NET。它向Ext.js添加了更多的voodoo……我试图去掉dc=参数,但所有提到的配置都不起作用。所以,这是我的超级有效、超级肮脏的解决方案:
Ext.Date.now = function () { return ""; }
据我所知,分机日期。now()仅用于缓存逻辑。所以它应该是相对论保存。
14条答案
按热度按时间vulvrdjw1#
将
disableCaching
选项设置为false:33qvvth12#
使用Ext JS 4.1,将以下代码添加到
app.js
后,_dc
参数消失:vwoqyblh3#
使用Sencha Cmd 6.x实现这一点的正确方法是在
app.json
中设置一个(全局)开关(因为所有这些攻击和覆盖可能会对功能产生不必要的干扰):然后运行
sencha app refresh
,以更新应用程序的bootstrap.json
。或者,可以配置
Ext.Loader
(在运行时):当向上滚动并阅读关于
Ext.Ajax
的实际问题时(每个请求):结果是:脚本化请求上不再有_dc参数。
@见Sencha Cmd 6.x - The Microloader。
ercv8c1e4#
请注意,Ext.Loader在ExtJS 5中的使用已更改。
在ExtJS 5中,可以禁用缓存:
?cache
”来暂时.sencha/app/Boot.js
并将'_config.disableCaching
'属性设置为true(覆盖动态查找)。vhipe2zx5#
我使用的是ExtJS 4.2,但这应该适用于Ext JS 4.1和更高版本。在代理中有一个名为noCache的属性,您应该将其设置为false。
我的代码显示Ext4.的原因是,当我将旧的ExtJS3x代码移到4.2时,我使用了沙箱模式
kx5bkwkv6#
这应该适用于extjs 4.0.7:
bksxznpy7#
将标志
disableCaching
设置为e1d1e(双重否定-yay!)在Ext.data上。连接应该可以做到这一点。有关更多信息,请参阅disableCaching文档。
(请注意,Ext中相当多的类似乎都有可用的选项,因此您可能需要做一些修改。)
zpgglvta8#
对于那些想在Sencha Architect 3+中设置“disableCaching:false”的用户,以下是如何设置的…:
1.在项目检查器窗口中,选择顶部节点“应用程序”
1.然后在您设置对象属性等的“Config”窗口下方,选择“Loader Config”。在我的情况下,我必须单击右侧的“+”,因为我尚未设置任何项目。这将在上面的“项目检查器”窗口中创建一个新的“LoaderXX”对象;Loader25在我的案例中。
1.现在要么在“项目检查器”窗口中选择新对象,要么单击新“LoaderXX”旁边的右箭头(在我的例子中是Loader25)。这将带您进入对象的属性。
1.取消勾选“disableCaching”项。
保存项目并刷新浏览器窗口,在Chrome中享受持久断点等。
cgh8pdjw9#
我能够在项目中全局禁用ExtJS 4.2.x中的_dc的唯一方法是:
这很难看,但还有其他想法吗?
lh80um4z10#
我就是这样做的:
xe55xuns11#
我决定要销毁客户端的缓存,但在服务器端,我使用了自己的缓存机制(PHP的APC)。
我在Ext ajax请求中保留了_dc,但随后将其从request_URI中删除,然后使用request-URI作为缓存键的基础
我发现这很有用:Regular expression to remove one parameter from query string
0lvr5msh12#
如果你在Sencha CMD下开发,你可以这样做
或者只是
ht4b089n13#
对于所有正在寻找在新版本中禁用它的方法的人:
mqxuamgl14#
我在Ext.JS上使用Ext.NET。它向Ext.js添加了更多的voodoo……我试图去掉dc=参数,但所有提到的配置都不起作用。所以,这是我的超级有效、超级肮脏的解决方案:
据我所知,分机日期。now()仅用于缓存逻辑。所以它应该是相对论保存。