2012-08-06 68 views
2

我已經開發了一個應用程序XPages工作得很好在瀏覽器(Firefox)和在每頁瀏覽器加載最大150Kb的內容(HTML,圖像,JS,CSS ...等等)直接訪問服務器與XPINC ...非常非常慢

當我將應用程序部署到直接使用XPiNC模式訪問服務器的遠程用戶時,速度非常差!

有了一個工具,我聞了聞流量,我看到,對於每一個到達那裏是傳輸的數據的10 Mbytes的(似乎在XML源,並且是動態編譯其他代碼...)

內的應用Notes客戶端不可用,所以...和我的客戶對此功能感到失望(在本地和複製中不可用)

我有8.5.3FP2(客戶端和服務器),帶有PRELOAD選項設置....沒有這個的任何改變。

有人對我有任何建議嗎?這是一個BUG嗎?

回答

1

這是事實,遠程應用程序(駐留在非本地服務器上的NSF)比本地客戶端複製或遠程應用程序在web瀏覽器運行速度較慢。這是由於在這種模式下運行時會產生更多的網絡事務。有很多事情可以解決問題。

首先,我們需要確定問題的原因 - 您看到每個GET請求需要10MB傳輸,這非常大,並且會明顯對性能產生負面影響。應用程序中的一個或多個XPage可能正在使用computeWithForm功能?如果XPages文檔數據源「計算」Notes表單(通常用於執行預先存在的應用程序邏輯),則表單必須跨網絡複製以在本地客戶機中計算。然而,表格中的所有孩子也將被拖拽 - 子表單,共享字段等,這可能導致像您所看到的那樣的大型網絡交易。

通常computeWithForm特性被用作開發方便,只要表單的大小很小,那麼性能影響可以忽略不計。但是,如果聚合形式很大,那麼使用單獨的XPages SSJS應用程序邏輯替換computeWithForm的用法可能是值得的。

在進一步討論之前,我們需要確認這實際上是個問題 - 可能還有其他問題。通常,這隻會在打開/編輯文檔的頁面上顯示 - 所以您可以嘗試在測試環境中關閉computeWithForm,並查看是否有差異。

1

XPiNC有點特別。當您打開基於NSF的服務器時,需要將所有程序代碼下載到客戶端以在Notes客戶端的服務器容器中執行。在服務器中使用XPiNC和數據的合理方式是分割應用程序。有一個包含所有程序邏輯(所有XPage和其他代碼)的NSF,另一個包含表單,視圖和文檔。 在本地複製應用程序NSF並僅訪問服務器上的數據。這應該會給你更好的表現。您可以有一個配置設置來計算數據NSF,因此斷開連接的用戶可以使用數據的本地副本。

讓我們知道它是如何發展的。

P.S:有一些調整的想法......