在开发过程中阻止OneNote(在线)缓存我的加载项?

时间:2017-01-27 15:21:22

标签: caching office-js office-addins onenote-api

OneNote(在线)缓存我的加载项时遇到了恼人的问题。我正在加载我的加载项,尽管将新版本推送到我的服务器,完全刷新OneNote网页并重新插入我的加载项,我仍然看到旧的加载项内容。如果我使用加载项清单中的加载项URL打开新标签页,那么我执行会看到新内容,因此我几乎可以肯定它是一个缓存问题。换句话说,我在OneNote提供的加载项IFRAME中看到了内容,但如果我将同一个网页加载到一个全新的内容中,我会看到新的内容标签

在我开发加载项时,是否有设置或其他方法可以阻止加载项缓存?

注意:当我们等待更好的答案时,我现在正在使用通过在URL的末尾添加良性URL参数来更改清单中的加载项URL的旧技巧我随每个版本的变化而增加。希望有人会提供一个比这更好的解决方案,因为它有点痛苦,但至少它现在是一些东西。

1 个答案:

答案 0 :(得分:2)

真的不是OneNote Online缓存您的加载项 - 它是您的浏览器。

使用以下HTML标头来阻止缓存:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>

Prevent caching of HTML page

为了防止缓存JS,您可能需要做更多工作。我建议在JS引用中附加一个随机数,如此处所示。

<script language="JavaScript">
    var s=document.getElementsByTagName('script')[0];
    var sc=document.createElement('script');
    sc.type='text/javascript';
    sc.async=true;
    sc.src='http://PATHTOYOURSCRIPT.js?v' + Math.random(); 
    s.parentNode.insertBefore(sc,s);
</script>

Preventing Cache on JavaScript files