<script type="text/javascript">
var xmlHttp; //用于保存XMLHttpRequest对象的全局变量
var refreshTime = 1000 * 2; //自动刷新时间间隔,目前为2秒
var isRefreshing = false; //是否处于自动刷新过程中
//用于创建XMLHttpRequest对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
}
}
//获取最新价格
function getNewPrice() {
//如果已在刷新过程中,直接返回,取消操作
if (isRefreshing) {
return;
}
isRefreshing = true; //设置刷新状态为true
displayLoading(); //显示“正在加载……”
createXmlHttp(); //创建XMLHttpRequest对象
xmlHttp.onreadystatechange = writePrice; //设置回调函数
xmlHttp.open("GET", "stock.jsp?timestamp=" new Date().getTime(), true); //发送GET请求
xmlHttp.send(null);
}
//将最新价格写入页面
function writePrice() {
if (xmlHttp.readyState == 4) {
isRefreshing = false; //获取成功,设置刷新状态为false
hiddenLoading(); //隐藏“正在加载……”提示
//将获得的价格遍历写入页面
var result = eval("(" xmlHttp.responseText ")");
for (var o in result) {
document.getElementById(o).innerHTML = result[o];
}
}
}
//显示提示信息
function displayLoading() {
document.getElementById("loading").style.visibility = "visible";
}
//隐藏提示信息
function hiddenLoading() {
document.getElementById("loading").style.visibility = "hidden";
}
//初始化获取最新价格,并设置定时获取函数调用
function init() {
getNewPrice();
setInterval("getNewPrice()", refreshTime);
}
</script>
评论