posts - 2,comments - 0,trackbacks - 0
          作個備忘。。。
          VI: %s/^M//g
          (Ctrl+v Ctrl+m)

          posted @ 2008-10-29 23:02 Ether 閱讀(262) | 評論 (0)編輯 收藏
          碰到需要一個sleep()功能。JS中的有window.setTimeout(https://developer.mozilla.org/En/DOM/Window.setTimeout),
          但是是異步執行。Google一下,發現一個有意思的同步XMLHttpRequest的實現。

          client端:
          <%@ page language="java" contentType="text/html;charset=UTF-8"%>
           
          <html locale="true">
          <head>
          <script type="text/javascript">
          Util 
          = function() {
              
          function getXRequest() {
                  activeX 
          = ['MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']
                  
          try {
                      http 
          = new XMLHttpRequest();
                  } 
          catch (e) {
                      
          for (var i = 0; i < activeX.length; ++i) {
                          
          try {
                              http 
          = new ActiveXObject(activeX[i]);
                              
          break;
                          } 
          catch (e) {
                          }
                      }
                  } 
          finally {
                      
          return http;
                  }
              }
              
          return {
                  sleep : 
          function(sec) {
                      xreq 
          = getXRequest()
                      startTime 
          = new Date()
                      
          while ((new Date().getTime() - startTime) < sec) {
                          xreq.open('GET', '
          /hellowar/sleep.jsp', false);
                          xreq.send(
          null);
                      }
                  }
              }
          }()
          </script>
          </head>
          <body bgcolor="white">
              
          <button onclick="javascript:Util.sleep(10000);alert('Delay 10 Sec.')">click me</button>
          </body>
          </html>

          server端:
          <%@ page language="java" contentType="text/html;charset=UTF-8"%>
          <%
          try {
              Thread.sleep(
          10000);
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
          %>
          <html locale="true">
          <head>
          </head>
          <body bgcolor="white">
              dummy content
          </body>
          </html>


          posted @ 2008-10-29 22:56 Ether 閱讀(6503) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 湄潭县| 定远县| 博爱县| 胶南市| 霍山县| 藁城市| 资源县| 邳州市| 广水市| 德令哈市| 夏河县| 科技| 呼图壁县| 上栗县| 郎溪县| 修武县| 新泰市| 马尔康县| 洛隆县| 华阴市| 阳原县| 北海市| 龙山县| 庐江县| 霸州市| 饶阳县| 类乌齐县| 喜德县| 通山县| 密山市| 谢通门县| 衡山县| 阳高县| 高州市| 白朗县| 缙云县| 马龙县| 石楼县| 喀喇沁旗| 大余县| 修武县|