想用msagent 實(shí)現(xiàn)即時(shí)通訊 但是用javascript操作msagent的時(shí)候必須不斷刷新頁(yè)面,這肯定是不能忍受的,想到了流行的ajax技術(shù),用dwr實(shí)現(xiàn)定時(shí)刷新 ,
1。在頁(yè)面里面加入
<script src='<%= request.getContextPath() %>/dwr/interface/ListWorkflowTaskAJAXProcess.js'></script>
<script src='<%= request.getContextPath() %>/dwr/engine.js'></script>
<script src='<%= request.getContextPath() %>/dwr/util.js'></script>
2。然后用
function InitList(){
? var frm = document.listWorkflowProgressForm;
? callAjax(frm.curStartRowNo.value,frm.sortAttribute.value,frm.sortOrder.value, retriveList);
? ? setTimeout("InitList()",<%=m_refreshInterval%>);
}
3。function callAjax(curStartRowNo, sortAttribute, sortOrder, retriveList){
? var frm = document.listWorkflowProgressForm;
? frm.curStartRowNo.value=curStartRowNo;
? frm.sortAttribute.value=sortAttribute;
? frm.sortOrder.value=sortOrder;
? ListWorkflowTaskAJAXProcess.getWorkflowTaskList(curStartRowNo, sortAttribute, sortOrder, frm.filterStepID.value, retriveList);//在javascript里面就可以調(diào)用java class了
}
4.msagent 參考代碼
<script>
var chName;
var agent;
var Merlin;
chName = "Merlin";
agent = new ActiveXObject("Agent.Control.2");
agent.Connected = true; agent.Characters.Load(chName,chName+".acs");
Merlin = agent.Characters(chName); Merlin.MoveTo(200,200); Merlin.Show();
Merlin.Play("Announce");
Merlin.Speak("歡迎來(lái)到detrox的個(gè)人主頁(yè)");
Merlin.Play("Explain");
Merlin.Speak("咳,這里收錄了detrox和他朋友的文章。希望您能喜歡。");
Merlin.Play("Idle1_1");
Merlin.Play("Pleased");
Merlin.Speak("請(qǐng)進(jìn)吧,我的客人");
Merlin.MoveTo(600,300);
Merlin.Play("Surprised");
Merlin.Speak("哦對(duì)了,大家最近小心非典。多多注意哦");
Merlin.Play("Idle1_2");
Merlin.Play("GestureUp");
Merlin.Speak("祝您在這里愉快");
Merlin.Play("Read");
Merlin.Hide();
</script>
posted on 2006-09-03 12:15
還沒(méi)想好名 閱讀(511)
評(píng)論(0) 編輯 收藏