我开发了一个应用程序 XPage,它在浏览器 (Firefox) 中运行良好,并且在每个页面中浏览器加载最多 150Kb 的内容(html、图像、js、css...等...)
当我将应用程序部署到使用 XPiNC 模式直接访问服务器的远程用户时,速度非常非常差!
通过一个工具,我嗅探了流量,发现每次 GET 都会传输 10Mbytes 的数据(似乎传输 XML 源代码和其他即时编译的代码...)
Notes 客户端内的应用程序无法使用,因此...我的客户对此功能感到失望(无法在本地和复制中使用)
我有 8.5.3FP2(客户端和服务器),具有 PRELOAD 选项设置......对此没有任何更改。
有人给我建议吗?这是一个BUG吗?
最佳答案
确实,远程应用程序(驻留在非本地服务器上的 NSF)比本地客户端副本或在 Web 浏览器中运行的远程应用程序慢。这是因为在此模式下运行时会生成更多的网络事务。但是可以采取多种措施来解决该问题。
首先,我们需要确定问题的原因 - 您会看到每个 GET 请求传输 10MB,这是非常大的,显然会对性能产生负面影响。您的应用程序中的一个或多个 XPage 可能正在使用computeWithForm 功能?如果 XPage 文档数据源“计算”Notes 表单(通常是为了执行预先存在的应用程序逻辑),则必须通过网络复制该表单才能在本地客户端中进行计算。然而,表单的所有子表单也将被拖拽 - 子表单、共享字段等,这可能会导致像您所看到的那样的大量净交易。
computeWithForm 功能通常是为了方便开发而使用,只要表单的大小很小,那么对性能的影响就可以忽略不计。但是,如果聚合表单很大,那么用单独的 XPages SSJS 应用程序逻辑替换computeWithForm 用法可能是值得的。
在进一步讨论之前,我们需要验证这确实是问题所在 - 可能还有其他问题。通常,这仅出现在打开/编辑文档的页面上 - 因此您可以尝试在测试环境中关闭computeWithForm,看看是否有差异。
关于xpages - 使用 XPINC 直接访问服务器...非常非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11828603/