SAP MII UI5应用程序高速缓存克星不适用于JS文件

2020-08-24 00:36发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


https://answers.sap.com/questions/367944/sap-mii-ui5-application-cache-buster-not-working.html?childToView=12868043#

参考以上讨论,我已经在MII UI5应用程序中完成了缓存清除。

  • 这种方法没有将Js文件,控制器文件和格式化程序文件与版本一起应用
  • 视图文件,片段文件,json文件,清单文件正在使用这些版本更新
  • 仅无法处理JS文件
  • 因此,我在视图中所做的更改以及在控制器中所做的更改都没有反映出来,因为这些文件没有文件名后面的版本。

应用规范:

  • SAP UI5版本:1.60
  • 在SAP MII Workbench中具有代码。

随版本加载的JSON和xml文件

无需版本即可加载的JS文件

index.html

(18.8 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


https://answers.sap.com/questions/367944/sap-mii-ui5-application-cache-buster-not-working.html?childToView=12868043#

参考以上讨论,我已经在MII UI5应用程序中完成了缓存清除。

  • 这种方法没有将Js文件,控制器文件和格式化程序文件与版本一起应用
  • 视图文件,片段文件,json文件,清单文件正在使用这些版本更新
  • 仅无法处理JS文件
  • 因此,我在视图中所做的更改以及在控制器中所做的更改都没有反映出来,因为这些文件没有文件名后面的版本。

应用规范:

  • SAP UI5版本:1.60
  • 在SAP MII Workbench中具有代码。

随版本加载的JSON和xml文件

无需版本即可加载的JS文件

index.html

(18.8 kB)
付费偷看设置
发送
3条回答
空代码
1楼 · 2020-08-24 01:27.采纳回答
//$。ajaxSetup({data:{_TheAppVersion:data._TheAppVersion}});
 (function(){
    var proxied = window.XMLHttpRequest.prototype.open;
    window.XMLHttpRequest.prototype.open = function(){
     var url = arguments [1];
     if(url.indexOf("?")== -1){url = url +"?";  }
     arguments [1] = url +"&_TheAppVersion =" + data._TheAppVersion;
     返回proxied.apply(this,[] .slice.call(arguments));
    };
 })();
 

像这样覆盖XMLHttpRequest.open()似乎可行,但我不知道这样做是否是一种好习惯。 我想使用这种方法,如果您要解析url,则可以避免在应用程序版本更改为很好时重新加载ui5库。

致谢,
Christian

# p#克里斯蒂安·里比奇

这似乎很好用,因为我们只是将版本附加到文件名中,所以我觉得与良好实践没有任何关系。 因为当我们在浏览器中进行明确的缓存和硬刷新时,比这花费的时间要多得多。

因此,我觉得这是一个更好的解决方案,无论加载程序因版本而异,我们都可以在任何版本中使用它。

我也正在考虑做类似的解决方案,但是我不知道从哪里选择这些文件并附加版本。 由此,我也得到了答案。

非常感谢您提供的更快,更高效的解决方案。 :-)

wang628962
2楼-- · 2020-08-24 01:25

Bhanu,
目前我无权检查,但我发现您已将ui5配置为使用应用程序缓存清除程序,并且我怀疑这可能是导致您的问题的原因 。 netweaver不支持缓存破坏器。 我认为缓存破坏者使用其自己的作用域/机制来加载资源,并且由于netweaver方面没有服务来告诉它文件已更新,因此它不会在URL上附加任何内容来尝试获取新版本。 在您的屏幕快照中,您可以看到_AppVer ...被jquery捕获的...和没有ui5loader捕获的

不管怎么说,还是尝试一下 没有在ui5引导程序中配置的缓存无效化器。

问候,
基督徒

SKY徐
3楼-- · 2020-08-24 01:31

看起来像是在某个版本中,它们更改了加载某些模块的方式,这可能是消除jQuery依赖关系的一部分。 我目前没有解决方案,建议您与SAP签单,看看他们是否有建议。 您可能想找到一个openui5社区,看看他们是否有解决方案。 或尝试深入研究ui5代码,看看是否可以对我们所有人进行整理:)

问候,
Christian

一周热门 更多>