2012-02-17 62 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