按钮后面的 SSJS 代码在页面刷新后运行
SSJS Codes behind the button runs after page is refreshed
我在按钮后面有 SSJS 代码。当我单击代码在另一个数据库中创建文档的按钮时。
当我单击按钮时,它工作正常,但我查看 Domino Admin 控制台,我意识到按钮后面的代码工作了两次。我想当页面刷新时它再次工作?我该如何预防?
我想念的是什么?
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print("Before createNewDoc()");
createNewDoc();
print("After createNewDoc()");
}]]></xp:this.action>
</xp:eventHandler></xp:button>
在 beforePageLoad
、afterPageLoad
等事件中添加打印语句以确认它在哪里 运行。此外,值得使用 XPages OpenLog Logger 或其他可以输出完整堆栈跟踪的日志记录框架。这可能会识别代码是否在刷新中 运行 两次,以及来自何处。
没有理由代码应该从按钮中 运行 两次。我假设这是脚本库中的一个 SSJS 函数,也许是其他东西触发了它。
我在按钮后面有 SSJS 代码。当我单击代码在另一个数据库中创建文档的按钮时。
当我单击按钮时,它工作正常,但我查看 Domino Admin 控制台,我意识到按钮后面的代码工作了两次。我想当页面刷新时它再次工作?我该如何预防? 我想念的是什么?
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:print("Before createNewDoc()");
createNewDoc();
print("After createNewDoc()");
}]]></xp:this.action>
</xp:eventHandler></xp:button>
在 beforePageLoad
、afterPageLoad
等事件中添加打印语句以确认它在哪里 运行。此外,值得使用 XPages OpenLog Logger 或其他可以输出完整堆栈跟踪的日志记录框架。这可能会识别代码是否在刷新中 运行 两次,以及来自何处。
没有理由代码应该从按钮中 运行 两次。我假设这是脚本库中的一个 SSJS 函数,也许是其他东西触发了它。