如何使用xPages强制更新设计更改到客户端?

时间:2012-02-17 17:41:00

标签: javascript stylesheet lotus-domino xpages cache-expiration

我正在使用xPages建立一个网页,我正在对脚本和设计进行不断的更改,这包括服务器和客户端javascript,样式表和图像更改。

每次我更改javascript或样式表时,我都希望在webbrowser中看到我的更改,并且我还希望我的用户在访问网页时获得最新的更改。

我知道我可以使用Shift-Reload,或者CTRL重新加载并清除我的webbrowser缓存。而且我也知道我可以更改对象的到期日期,但我想要一种更平滑,更好的控制方式来做到这一点。

寻找任何形式的最佳实践。

由于

托马斯

9 个答案:

答案 0 :(得分:5)

在应用程序的xsp.properties文件中或服务器范围内的服务器上,您可以设置xsp.application.forcefullrefresh = true。 xsp.properties文件文档说:

#应用程序刷新  #当此属性设置为true时,则在请求完整应用程序刷新时  #类的设计发生变化(意味着所有数据都在作用域中被丢弃)。

#xsp.application.forcefullrefresh = false

新的XSP Portable Command Guide说“这个属性是在Notes / Domino 8.5.3中引入的。它默认设置为false,在XPage应用程序的开发阶段特别有用。”

我还没有完全测试过这种行为,但听起来很有希望。您当然可以/当然只应在进行更改时将其设置为true。一旦稳定,就把它放回去。

/ Newbs

答案 1 :(得分:1)

添加Ferry的回答和您的评论;

而不是“?dummy = randomvalue”,您可以使用“?version = 2.1”。所以它会被缓存,但是当你改变设计时,你可以增加版本。

这种方法存在问题,因为一些代理服务器不会使用查询参数缓存任何内容。最好直接重命名文件,为其添加日期或版本号。它总是有效的。

暂时禁用缓存使用Fiddler2。可以在任何Web客户端的一个位置轻松启用和禁用。以及http请求跟踪功能的附加优势。

答案 2 :(得分:0)

要完全禁用任何缓存,请添加url +'“?dummy =”+ @Unique();'每个网址到javascript或图像文件...

答案 3 :(得分:0)

我正在阅读这个问题的方式是,您希望您所做的每一项更改都立即显示在客户端的浏览器或客户端上。你真的确定要这么做吗?听起来你没有做任何测试,所以任何错别字,错误,崩溃等都会传递给你的用户。听起来对我来说是一个糟糕的计划。我希望我错了,并且您正在使用模板并仅将完全测试的更改推送到生产版本,而不是在生产版本中进行更改。

我只想制定一个时间表,以便将更改推迟到生产阶段,让用户在那时重新加载浏览器或客户端。无论是在下班时间还是在下次登录时都这样做,他们都会得到最新的变化。

答案 4 :(得分:0)

添加Ferry的回答和您的评论;

而不是“?dummy = randomvalue”,您可以使用“?version = 2.1”。所以它会被缓存,但是当你改变设计时,你可以增加版本。

答案 5 :(得分:0)

也许你可以看看多米诺骨牌如何控制网址的缓存。

http://www.ibm.com/developerworks/lotus/library/ls-resp_head_rules/

答案 6 :(得分:0)

NEwbs答案很好,但值得注意的是,在Firefox中有一个非常有用的插件,名为“Web开发人员”,来自Chris Pederick,允许您禁用缓存。

http://chrispederick.com/work/web-developer/

另一个真正有用的是Firebug,这真是太棒了 - 它使任何HTML工作变得更加容易

https://addons.mozilla.org/en-US/firefox/addon/firebug/

答案 7 :(得分:0)

我确实找到了另一个解决方案,将我的css和js放在一个主题中,很容易重命名文件。

如此处所述 http://goo.gl/vFTii

答案 8 :(得分:0)

Why do not we use the window.location.reload()...

Which does the same like ctrl+F5

It reloads the page, which is similar to context.reloadpage