2

我开发了一个在浏览器 (Firefox) 中运行良好的应用程序 XPages,并且在每个页面中,浏览器最多加载 150Kb 的内容(html、图像、js、css ......等)

当我将应用程序部署到使用 XPiNC 模式直接访问服务器的远程用户时,速度非常非常差!

使用一个工具我嗅探了流量,我看到每个 GET 都有 10Mbytes 的数据传输(似乎传输 XML 源代码和其他动态编译的代码......)

Notes Client 中的应用程序无法使用,所以......我的客户对此功能感到失望(无法在本地和复制中使用)

我有带有 PRELOAD 选项设置的 8.5.3FP2(客户端和服务器)......没有任何改变。

有人对我有什么建议吗?这是一个BUG吗?

4

2 回答 2

1

XPiNC 有点特别。当您打开基于服务器的 NSF 时,需要将所有程序代码下载到客户端,然后在 Notes 客户端的服务器容器中执行。将 XPiNC 与服务器中的数据一起使用的合理方法是拆分应用程序。一个 NSF 包含所有程序逻辑(所有 XPage 和其他代码),另一个包含表单、视图和文档。在本地复制应用程序 NSF 并仅访问服务器上的数据。这应该会给你更好的性能。您可以有一个配置设置来计算数据 NSF,因此断开连接的用户可以使用数据的本地副本。

让我们知道怎么回事。

PS:还有一些调整的想法...

于 2012-08-07T15:14:35.797 回答
1

确实,远程应用程序(驻留在非本地服务器上的 NSF)比本地客户端副本或在 Web 浏览器中运行的远程应用程序要慢。这是因为在此模式下运行时会生成更多的网络事务。然而,有很多事情可以解决这个问题。

然而,首先我们需要确定问题的原因——您会看到每个 GET 请求传输 10MB,这非常大,显然会对性能产生负面影响。您的应用程序中的一个或多个 XPage 可能正在使用 computeWithForm 功能?如果 XPages 文档数据源“计算”Notes 表单(通常是为了执行预先存在的应用程序逻辑),则必须通过网络复制表单以在本地客户端中计算。然而,表单的所有子表单也将被拖走 - 子表单、共享字段等,这可能会导致像您所看到的那样大的净交易。

通常使用computeWithForm 功能是为了方便开发,只要表单的大小很小,那么对性能的影响可以忽略不计。但是,如果聚合表单很大,那么将 computeWithForm 用法替换为单独的 XPages SSJS 应用程序逻辑可能是值得的。

在继续之前,我们需要验证这实际上是问题所在 - 可能还有其他问题。通常,这仅在打开/编辑文档的页面上显示 - 因此您可以尝试在测试环境中关闭 computeWithForm 并查看是否存在差异。

于 2012-08-09T17:32:54.007 回答