在Domino 9.0.1 FP3中将 dojo IO Pipelines 与ExtLib控件(例如 xe:namepicker )结合使用时,我遇到了一个大问题。
这里有两个场景......
<xp:this.properties>
<xp:parameter name="xsp.client.script.dojo.djConfig" value="ioPublish:true"></xp:parameter>
</xp:this.properties>
<xp:button value="Partial Refresh" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="main" execMode="partial">
<xp:this.onComplete><![CDATA[doPartialRefreshOf(['tagCloud1', 'tagCloud2']); ]]></xp:this.onComplete>
</xp:eventHandler>
</xp:button>
<xp:panel id="main" style="background-color:rgb(0,255,64);">CONTENT</xp:panel>
<xp:panel id="tagCloud1" style="background-color:rgb(255,128,0)">TAGCLOUD1</xp:panel>
<xp:panel id="tagCloud2" style="background-color:rgb(128,0,255)">TAGCLOUD2</xp:panel>
<xp:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[dojo.subscribe("/dojo/io/start", function(data){
console.log("triggered on /dojo/io/start channel");
});
dojo.subscribe("/dojo/io/stop", function(data){
console.log("triggered on /dojo/io/stop channel");
});]]></xp:this.script>
</xp:eventHandler>
点击“部分刷新”按钮导致以下输出(在Firebug控制台上):
触发/ dojo / io /停止频道
... POST主
... GET tagCloud1
... GET tagCloud2
触发/ dojo / io /停止频道
一切都很完美!
<xp:this.properties>
<xp:parameter name="xsp.client.script.dojo.djConfig" value="ioPublish:true"></xp:parameter>
</xp:this.properties>
<xp:button value="Partial Refresh" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="main" execMode="partial">
<xp:this.onComplete><![CDATA[doPartialRefreshOf(['tagCloud1', 'tagCloud2']); ]]></xp:this.onComplete>
</xp:eventHandler>
</xp:button>
<xe:namePicker id="namePicker1" for="inputText1" pickerText="NamePicker"></xe:namePicker>
<xp:panel id="main" style="background-color:rgb(0,255,64);">CONTENT</xp:panel>
<xp:panel id="tagCloud1" style="background-color:rgb(255,128,0)">TAGCLOUD1</xp:panel>
<xp:panel id="tagCloud2" style="background-color:rgb(128,0,255)">TAGCLOUD2</xp:panel>
<xp:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[dojo.subscribe("/dojo/io/start", function(data){
console.log("triggered on /dojo/io/start channel");
});
dojo.subscribe("/dojo/io/stop", function(data){
console.log("triggered on /dojo/io/stop channel");
});]]></xp:this.script>
</xp:eventHandler>
点击“部分刷新”按钮导致以下输出(在Firebug控制台上):
... POST主
... GET tagCloud1
... GET tagCloud2
如您所见,firebug控制台上没有输出(/ dojo / io / ...)(不会触发dojo / io通道..)
两种方案在Domino 8.5.3 FP6 + Lotus Domino升级包中都非常有效。
任何提示/建议如何解决这个问题?
提前致谢
格奥尔格
答案 0 :(得分:0)
9.0.1FP3包含Dojo v1.9.4,并且自dojo 1.8以来已弃用dojo / io。这可能是问题的一部分。见这里:http://dojotoolkit.org/reference-guide/1.9/dojo/io.html
您可以尝试使用dojo / request,如该链接中所建议的那样。我不熟悉旧的IO或新的请求包,所以你需要做一些投资。