我应该在哪里使用XSP.endAjaxLoading()?

时间:2016-11-04 16:07:09

标签: xpages lotus-notes

我有一个Xpage,加载时间太长。所以客户要我做一个加载指示器。 我搜索并找到XSP.startAjaxLoading(),我放入了自定义控件的onClientLoad事件。 但现在我不知道我应该把XSP.endAjaxLoading()放在哪里使加载屏幕消失。 我想在afterRenderResponse和beforeRenderResponse:view.postScript("XSP.endAjaxLoading()")中使用,因为这个命令是CSJS,但它不起作用。

提前致谢。

4 个答案:

答案 0 :(得分:0)

我想你想把它放在onComplete事件中。这很难找到。您通常需要使用大纲控件来查找它。

我在NotesIn9上有一个视频演示,其中有一个例子。

http://www.notesin9.com/2016/02/19/notesin9-188-adding-a-please-wait-to-xpages/?unique=http%3A//www.notesin9.com/2016/02/19/notesin9-188-adding-a-please-wait-to-xpages/

答案 1 :(得分:0)

您的尝试(view.postscript)仅适用于完整/部分更新,不适用于页面加载。

您使用了onClientLoad - 在您的网页加载完成后执行。我猜你有一段时间后会得到ajax动画而且它不会停止。

你应该制作预装屏幕 - 非常简单的XPage,它可以启动动画并且无需关闭它。在onClientLoad事件中重定向到您的慢XPage。这将丢弃动画。

答案 2 :(得分:0)

我强烈建议您使用待机对话框XSnippet https://openntf.org/XSnippets.nsf/snippet.xsp?id=standby-dialog-custom-control。我在所有XPage应用程序中都将它用作标准。

答案 3 :(得分:0)

我用这个答案作为解决方案:https://stackoverflow.com/a/35481981/5339322
几天前我已经看过了,让我三思而后行的是使用这个我应该知道我的XPages要做什么来推迟。我运行了一些测试并发现了什么,并且它是对afterRestoreView事件中的方法的调用,然后我将其迁移到onClientLoad事件并使用上面引用的答案中的解决方案。 但我担心我必须密切关注它,所以如果有人添加一些代码延迟XPages的另一个事件,我必须再次移动它,当然,如果它可能的话如果不是,我会想出不同的东西。

感谢所有答案和评论。