posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          頁面嵌入在線聊天 (prototype)

          Posted on 2007-06-13 10:22 G_G 閱讀(1452) 評論(3)  編輯  收藏 所屬分類: javascript
          問題 : 提供給B/S 結構一個實時的運行展現
          解決:?? prototype 的?Ajax.PeriodicalUpdater 更新
          ??????????? prototype 的??? Ajax.Request 語句提交
          ????????????action 語句的組織展現

          http://www.aygfsteel.com/Files/Good-Game/take.rar

          ????沒有lib 大家可以就加 struct 相關 lib 就可以了

          說明:?
          ??????

          <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
          <html>
          ??
          <head>
          ??????????
          <SCRIPT?language="Javascript"?src="prototype1.5.0.js"></SCRIPT>
          ??
          </head>
          ??
          ??
          <body?onload="Said()">?
          ??????
          <INPUT?id='name1'?type="text"?size="10"?value="請輸入名字"?onfocus="if($('name1').value=='請輸入名字')?$('name1').innerText=''?"?/>
          ??????
          <INPUT?id='text1'?type="text"?onkeydown="if(event.keyCode==13){event.keyCode=0;?onb();}"/>
          ??????
          <INPUT?id='button1'?type="button"?value="test"?onclick='onb()'?/>
          ??
          </body>
          ??
          <div?id='div1'/>
          </html>
          <script?type="text/javascript"??>
          ??????? //語句異步提交給服務器 Ajax.Request
          ????
          function?onb(){?????????????????????????????????????????
          ??????
          if($('name1').value=='請輸入名字'?||?$('name1').value==''){
          ??????????window.alert('請輸入名字');
          ??????????
          return?
          ??????}

          ??????
          ??????
          var?url?=?'http://192.168.1.130:7000/xxs/mySaid.do?name='+$F('name1')+'&take='+$F('text1');????????????????
          ??????new?Ajax.Request(
          ????????url,
          ????????
          {
          ????????????method:?'get',
          ????????????onComplete:?action??????????????
          ????????}
          );
          ????????
          ????????$('name1').readOnly?
          =?true
          ????????$('name1').style.background?
          =?'lightblue'
          ????????$('text1').innerText
          =''?
          ????}

          ?????? //局部刷新 并提取 語句
          ????
          function?Said(){
          ????????
          var?url?=?'http://192.168.1.130:7000/xxs/mySaid.do';??
          ????????new?Ajax.PeriodicalUpdater(
          ????????????'div1',
          ????????????url,
          ????????????
          {
          ????????????????method:?'get',
          ????????????????onComplete:?SumSaid,
          ????????????????evalScripts:?
          true,
          ????????????????frequency:?
          1,
          ????????????????decay:?
          1
          ????????????}

          ????????);
          ????}

          ?????? //展現
          ????
          function?SumSaid(req){
          ????????$('div1').innerHTML?
          =?req.responseText;
          ????}


          ????
          function?action(req){
          ????}

          ????
          </script>
          ????

          Action
          ?? private static int SIZE = 30 ;
          ???? private List list = new ArrayList();

          ????
          public?ActionForward?execute(
          ????????ActionMapping?mapping,
          ????????ActionForm?form,
          ????????HttpServletRequest?request,
          ????????HttpServletResponse?response)?
          {
          ????????String?take?
          =?request.getParameter("take")?;
          ????????String?name?
          =?request.getParameter("name")?;
          ????????response.addHeader(
          "Cache-Control","no-cache");?
          ????????
          ????????request.setAttribute(
          "said",DueiLie(name,take));

          ????????
          try?{
          ????????????request.setCharacterEncoding(
          "gb2312");
          ????????????response.setCharacterEncoding(
          "gb2312");
          ????????}
          ?catch?(Exception?e)?{
          ????????}


          ????????
          return?mapping.findForward("list");
          ????}

          ?????
          ??????? //語句的組織
          ????
          public?String?DueiLie(String?name,String?take){
          ????????
          ????????StringBuffer?strb??
          =?new?StringBuffer();
          ????????
          if(name==null||take==null);
          ????????
          else{
          ????????????strb.append(?name?).append(
          "?:?").append(take).append("</br>")?;
          ????????????
          if(list.size()==SIZE){
          ????????????????list.remove(list.get(
          0));
          ????????????????list.add(strb.toString()?);
          ????????????}
          else{
          ????????????????list.add(?strb.toString()?);
          ????????????}

          ????????}

          ????????StringBuffer?takes?
          =?new?StringBuffer();
          ????????Iterator?it?
          =?list.iterator();
          ????????
          while(it.hasNext()){
          ????????????takes.insert(?
          0,(String)it.next()?);
          ????????}

          ????????
          return?takes.toString();
          ????}

          jsp ( list ) 中文處理 jsp 就一句話
          <%= new String(((String)request.getAttribute("said")).getBytes("iso8859-1"),"GBK") %>

          心得:別人做到了 我也能做到
          ?????????要學的東西很多 多看書 多留意 多保護好身體

          評論

          # re: 頁面嵌入在線聊天 (prototype)[未登錄]  回復  更多評論   

          2007-06-13 13:30 by 劉明
          可以給個Demo演示嗎?本人對struct不太懂。

          # re: 頁面嵌入在線聊天 (prototype)  回復  更多評論   

          2007-06-13 14:57 by G_G
          @劉明
          上頭下載的 就是 不過沒 lib :( 有點大
          你可以看 .classpath 放lib 我的 .classpath 有點亂
          你加 struct 的 lib 就可以了
          { 有 動態建表(2) bean[] 直接到建表 (擴展也很好) 的文檔的 lib 在里面 }
          對不起大家了
          有問題 到我
          liukaiyi@gmail.com 留言 謝謝

          # re: 頁面嵌入在線聊天 (prototype)  回復  更多評論   

          2007-06-13 17:16 by IT進行時
          還是用smack吧,簡單又“正統”。
          主站蜘蛛池模板: 泽州县| 乐亭县| 抚远县| 张家口市| 景洪市| 新乐市| 江华| 浙江省| 徐汇区| 高清| 法库县| 晋江市| 临汾市| 蒲城县| 平原县| 大同县| 普格县| 潜山县| 巴楚县| 安徽省| 柞水县| 公主岭市| 田林县| 广宗县| 岳西县| 忻城县| 宿州市| 耒阳市| 峨眉山市| 芷江| 屯门区| 滦平县| 灵丘县| 林甸县| 武强县| 新晃| 河池市| 海宁市| 赤城县| 奇台县| 京山县|