我有一个Xpage,加载时间太长。所以客户要我做一个加载指示器。
我搜索并找到XSP.startAjaxLoading()
,我放入了自定义控件的onClientLoad事件。
但现在我不知道我应该把XSP.endAjaxLoading()
放在哪里使加载屏幕消失。
我想在afterRenderResponse和beforeRenderResponse:view.postScript("XSP.endAjaxLoading()")
中使用,因为这个命令是CSJS,但它不起作用。
提前致谢。
答案 0 :(得分:0)
我想你想把它放在onComplete事件中。这很难找到。您通常需要使用大纲控件来查找它。
我在NotesIn9上有一个视频演示,其中有一个例子。
答案 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的另一个事件,我必须再次移动它,当然,如果它可能的话如果不是,我会想出不同的东西。
感谢所有答案和评论。