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

Javascript 如何使用xPages强制更新客户端的设计更改?,javascript,stylesheet,lotus-domino,xpages,cache-expiration,Javascript,Stylesheet,Lotus Domino,Xpages,Cache Expiration,我正在使用xPages构建一个网页,并且我正在对脚本和设计进行不断的更改,这包括服务器和客户端javascript、样式表和图像更改 每次我更改javascript或样式表时,我都希望在webbrowser中看到我的更改,并且希望我的用户在访问网页时获得最新的更改 我知道我可以使用Shift重新加载或CTRL重新加载并清除我的webbrowser缓存。我也知道我可以更改对象的过期日期,但我想用一种更平滑、更好控制的方法来实现这一点 寻找这样做的最佳实践 谢谢 Thomas要完全禁用任何缓存,请添

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

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

我知道我可以使用Shift重新加载或CTRL重新加载并清除我的webbrowser缓存。我也知道我可以更改对象的过期日期,但我想用一种更平滑、更好控制的方法来实现这一点

寻找这样做的最佳实践

谢谢


Thomas

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

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

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


我只会列出一个时间表,说明何时将更改推到生产阶段,并让用户在那个时候重新加载浏览器或客户端。或者在休息时间这样做,当他们下次登录时,他们会得到最新的更改

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


我只会列出一个时间表,说明何时将更改推到生产阶段,并让用户在那个时候重新加载浏览器或客户端。或者在休息时间这样做,当他们下次登录时,他们会得到最新的更改

添加Ferry的答案和您的评论


您可以使用“版本=2.1”代替“虚拟=随机值”。因此,它将被缓存,但当您更改设计时,您可以增加版本。

添加到Ferry的答案和您的评论中


您可以使用“版本=2.1”代替“虚拟=随机值”。因此,它将被缓存,但当您更改设计时,您可以只增加版本。

在应用程序的xsp.properties文件中,或在服务器上(用于服务器范围)设置xsp.application.forcellrefresh=true。xsp.properties文件说明:

#应用程序刷新 #当此属性设置为true时,则在以下情况下请求完全应用程序刷新: #类的设计发生了变化(意味着在作用域中丢弃所有数据)

#xsp.application.forcellrefresh=false

新的XSP Portable命令指南说:“这个属性是在Notes/Domino8.5.3中引入的。它默认设置为false,在XPages应用程序的开发阶段特别有用。”

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


/Newbs

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

#应用程序刷新 #当此属性设置为true时,则在以下情况下请求完全应用程序刷新: #类的设计发生了变化(意味着在作用域中丢弃所有数据)

#xsp.application.forcellrefresh=false

新的XSP Portable命令指南说:“这个属性是在Notes/Domino8.5.3中引入的。它默认设置为false,在XPages应用程序的开发阶段特别有用。”

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


/Newbs

也许您可以看看domino如何控制url的缓存


也许您可以看看domino如何控制url的缓存


NEwbs的回答很好,但值得注意的是,Firefox中有一个非常有用的插件,名为Chris Pedrick提供的“web开发者”,允许您禁用缓存

另一个真正有用的是Firebug,它非常神奇——它使任何HTML工作都更加容易


NEwbs的回答很好,但值得注意的是,Firefox中有一个非常有用的插件,名为Chris Pedrick提供的“web开发者”,允许您禁用缓存

另一个真正有用的是Firebug,它非常神奇——它使任何HTML工作都更加容易


添加Ferry的答案和您的评论

您可以使用“版本=2.1”代替“虚拟=随机值”。所以它将被缓存,但当您更改设计时,您可以增加版本

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


要临时禁用缓存,请使用Fiddler2。在任何web客户端的一个位置启用和禁用都很容易。以及http请求跟踪功能的附加好处

添加Ferry的答案和您的评论

您可以使用“版本=2.1”代替“虚拟=随机值”。所以它是
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