posts - 2,comments - 0,trackbacks - 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)編輯 收藏
          僅列出標題  
          主站蜘蛛池模板: 高碑店市| 缙云县| 宣武区| 芦溪县| 宁城县| 舟山市| 藁城市| 新密市| 交口县| 虞城县| 葫芦岛市| 黎平县| 汉沽区| 义马市| 贺州市| 长白| 衡阳市| 扶绥县| 柳江县| 潜江市| 尤溪县| 成武县| 龙江县| 腾冲县| 勃利县| 聂拉木县| 南澳县| 萝北县| 白朗县| 虎林市| 梧州市| 原平市| 玉屏| 新宁县| 陆川县| 山阳县| 舒兰市| 松溪县| 弥勒县| 韩城市| 米泉市|