我开发了一个XPages应用程序(在XWorks服务器上),可以很好地与Firefox,Chrome和Internet Explorer 11配合使用。但是,在Internet Explorer 9中,我经常收到错误消息"应用程序没有响应,因为长期运行的脚本"在读取模式和编辑模式之间切换时(以及单击执行Dojo CSJS和SSJS的按钮时)。我已经尝试取消选择"运行时优化的JS和CSS"但问题仍然存在。我还能尝试解决这个问题吗?
编辑按钮背后的代码是:
<xp:button id="button2">
<xp:this.value><![CDATA[${javascript:
applicationScope.get("actEditDocument")}]]></xp:this.value>
<xp:this.rendered><![CDATA[#{javascript:
var aLevel = getComponent("HasAuthorRights").getValue();
var hasStatusAccess = getComponent("HasStatusAccess2").getValue();
var cLevel = @If((!currentDocument.isEditable() && (hasStatusAccess == @True()
|| @IsNewDoc() == 1)),"1","0");
@If(aLevel == "1" && cLevel == "1",true,false)}]]></xp:this.rendered>
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" id="eventHandler1"
refreshId="AllJobReferencePanel" disableValidators="true"
execMode="partial">
<xp:this.action>
<xp:actionGroup>
<xp:changeDocumentMode
mode="edit">
</xp:changeDocumentMode>
</xp:actionGroup>
</xp:this.action>
<xp:this.script>
<xe:dojoFadeOut
node="AllJobReferencePanel" duration="10000">
</xe:dojoFadeOut>
</xp:this.script></xp:eventHandler>
</xp:button>
编辑:我还添加了
var exCon = facesContext.getExternalContext();
var response = exCon.getResponse();
response.setHeader("X-UA-Compatible", "IE=EmulateIE7");
到每个XPage的beforeRenderResponse事件
答案 0 :(得分:2)
你可以尝试增加时间,看看是否有帮助。将它放在导致问题的页面顶部。这从默认值6s变为10s。您可以通过更改号码来调整时间。改变“运行优化的JS和CSS”不会有所作为,但会减慢速度。
<xp:scriptBlock id="setLatencyBlock">
<xp:this.value><![CDATA[XSP.addOnLoad(function() {
//increase Ajax request timeout to 10 seconds
XSP.submitLatency = 10 * 1000;
});]]></xp:this.value>
</xp:scriptBlock>
代码信用:http://www.mindoo.de/web/x2ewiki.nsf/dx/XSPSubmitLatency
您可以使用isIE()方法仅为旧版Internet Explorer加载它,因为听起来您现代用户代理不需要它。 (IE 11不适用于符合您利益的isIE())
更新: Tony,我同意Frantisek的评论。如果您尝试不同的方法,则可能不需要延长超时。我使用上面的代码等待一个我没有很多控制权的长java进程。增加超时是乐队助手,除非必要,否则应该避免