2012-08-06 47 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:有一些调整的想法......