2012-02-17 67 views
0

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

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

我知道我可以使用Shift-Reload或CTRL-reload并清除我的浏览器缓存。而且我也知道我可以更改对象到期日期,但我想要一个更平滑和更好控制的方式来执行此操作。

寻找任何这样做的最佳做法。

感谢

托马斯

+0

您的网页将成为慢了很多,当你不想让你的用户进行缓存。我没有遇到任何问题,大多数时候关闭和打开浏览器都会接受最新的更改。但是,如果有任何启用缓存的代理服务器处于活动状态,那么这将非常困难。 – 2012-02-17 18:18:50

+0

看到...... – 2012-02-17 18:50:01

回答

0

要完全禁止任何缓存添加URL + '+ @unique() “虚拟=?”;'到每一个网址到JavaScript或图像文件...

+0

感谢您的回答,实际上我不想禁用缓存,我想我想设置一个时间或日期,当新的设计更改应该应用于客户端。想想看,当Facebook将新设计推向客户时,他们是如何做到的?他们是否临时更改缓存到期以允许客户获得新设计? – 2012-02-17 18:49:15

0

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

我只是推出了一个时间表,什么时候变更将推到生产,并让用户在那个时候重新加载他们的浏览器或客户端。无论是在下班时间或下次登录时,都会得到最新的变化。

+0

当我写下这个问题时,我并没有真正清楚自己想要什么,让我再试一次。我想设定一个特定的日期和时间,当我的用户自动获得新的设计。我怎样才能做到这一点? – 2012-02-17 21:33:54

+0

计划复制到应用程序服务器。 – RoyRumaner 2012-02-18 16:01:56

0

添加到渡轮的回答和您的评论;

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

+0

添加一个参数到我的网址没有更新我的浏览器与最新的JavaScript – 2012-02-18 12:45:43

+0

您应该将该参数添加到JavaScript文件的URL – 2012-02-20 12:28:59

4

在应用程序的xsp.properties文件中或服务器上广泛使用的服务器上,您可以设置xsp.application.forcefullrefresh = true。该xsp.properties文件的文件说:

#应用程序刷新 #当此属性设置为true,那么一个完整的应用程序更新时请求 #的类变化(设计意味着所有的数据都在丢弃范围)。

#xsp.application.forcefullrefresh =假

新XSP便携式指挥指南说,“此属性,Notes/Domino的8.5.3出台。它默认设置为false,是开发过程中尤其有用一个XPages应用程序的阶段“。

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

/Newbs

+0

今天早上测试它,它正在工作 - 特别是在Notes客户端(XPiNC)! – Newbs 2012-02-20 15:26:55

1

添加到轮渡的答案,您的评论;

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

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

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

0

我发现把我的CSS和JS的主题很容易只是重命名文件另一种解决方案。

这里描述 http://goo.gl/vFTii

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