XPages - Internet Explorer 9 脚本未响应错误消息
XPages - Internet Explorer 9 script not responding error message
我开发了一个 XPages 应用程序(在 XWorks 服务器上),它适用于 Firefox、Chrome 和 Internet Explorer 11。但是,对于 Internet Explorer 9,我经常收到错误消息 "application is not responding due to a long running script"在阅读模式和编辑模式之间切换时(以及单击执行 Dojo CSJS 和 SSJS 的按钮时)。我试过取消选择 "runtime optimized JS and 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 事件
您可以尝试增加超时时间,看看是否有帮助。把它放在导致问题的页面顶部。这从默认的 6 秒更改为 10 秒。您可以通过更改数字来调整时间。更改 "run optimized JS and 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 过程。增加超时是一种创可贴,除非必要,否则应避免
我开发了一个 XPages 应用程序(在 XWorks 服务器上),它适用于 Firefox、Chrome 和 Internet Explorer 11。但是,对于 Internet Explorer 9,我经常收到错误消息 "application is not responding due to a long running script"在阅读模式和编辑模式之间切换时(以及单击执行 Dojo CSJS 和 SSJS 的按钮时)。我试过取消选择 "runtime optimized JS and 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 事件
您可以尝试增加超时时间,看看是否有帮助。把它放在导致问题的页面顶部。这从默认的 6 秒更改为 10 秒。您可以通过更改数字来调整时间。更改 "run optimized JS and 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 过程。增加超时是一种创可贴,除非必要,否则应避免