即:根據時間僅重新整理網頁部分内容
下面是異步顯示系統時間的例子
client.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript">
function makeRequest(url) {
alert("1111");
//alert("my GOD!");
http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType){
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
if (!http_request) {
alert("您的浏覽器不支援目前操作,請使用 IE 5.0 以上版本!");
return false;
//定義頁面調用的方法init,不是init();沒有();
http_request.onreadystatechange = init;
http_request.open('GET', url, true);
//禁止IE緩存
http_request.setRequestHeader("If-Modified-Since","0");
//發送資料
http_request.send(null);
//每60秒重新整理一次頁面
setTimeout("makeRequest('"+url+"')", 1000);
function init() {
if (http_request.readyState == 4) {
if (http_request.status == 0 || http_request.status == 200) {
var result = http_request.responseText;
if(result==""){
result = "系統時間擷取失敗";
document.getElementById ("sysTimeShow").innerHTML="系統時間 :"+result;
} else {//http_request.status != 200
alert("請求失敗!");
}
</script>
</head>
<body onload="makeRequest('getSystemTime.jsp')">
<div id="sysTimeShow"></div>
</body>
</html>
getSystemTime.jsp
<%@ page language="java" %>
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.Date"%>
<%@ page import="java.sql.Timestamp"%>
<%@ page import="java.io.IOException"%>
<%
Date d = new Date();
Timestamp ts = new Timestamp(d.getTime());
String result = ts.toString().substring(0,19);
out.write(result,0,result.length());
%>
**********************************失眠、憂郁、焦慮的分割線*******************************
下面是前台架構extjs中使用異步重新整理的方法:
var task={run:function(){
//重新整理的内容,如:更新textfield的value等 timearea.setValue(time);
},interval:1000};//1000代表一秒重新整理一次
var taskRunner=new Ext.util.TaskRunner();
taskRunner.start(task);
});
*****************************************睡醒了的分割線************************************
其實如果在extjs架構下如果想動态顯示一個document節點 那麼可以動态建立一個,
把它作為item來添加即可。
并且用上述方法指派。
例子如下:(該例子用于在工具欄中動态顯示目前系統時間)
var barr = new Ext.Toolbar({
height : 30
});
var doc = document.createElement('time');
barr.addItem(doc);
var now= new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var day=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
var time = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
//上面是在擷取目前時間
doc.innerHTML(time);
},interval:1000};
var taskRunner=new Ext.util.TaskRunner();
taskRunner.start(task);