当前位置: 首页 > 图文教程 > 网络编程 > Javascript > ajax无刷新动态调用股票信息(改良版)

Javascript
javascript innerText和innerHtml应用
图像替换新技术 状态域方法
JavaScript 判断判断某个对象是Object还是一个Array
Extjs 几个方法的讨论
JavaScript 学习笔记(十五)
javascript 匿名函数的理解(透彻版)
Jquery 常用方法经典总结
jquery 批量上传图片实现代码
javascript中的array数组使用技巧
详细讲解JS节点知识
javascript让setInteval里的函数参数中的this指向特定的对象
javaScript 关闭浏览器 (不弹出提示框)
对字符串进行HTML编码和解码的JavaScript函数
javascript 三种编解码方式
js左侧多级菜单动态的解决方案
JavaScript 学习笔记(十六) js事件
JavaScript面向对象之静态与非静态类
javascript两段代码,两个小技巧
js中鼠标滚轮事件详解(firefox多浏览器)
js实现的仿Photoshop鼠标滚轮控制输入框取值(修正兼容Chrome)

Javascript 中的 ajax无刷新动态调用股票信息(改良版)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 102 ::
收藏到网摘: n/a

今日闲来无事,把上次写的代码稍微改了改。增加了动态追加和删除股票信息的功能(代码基于jquery运行:http://jquery.com/) 。由于对Ajax技术的认识还只是在初级阶段,总觉得这么些有点别扭,希望大虾能够指点一二。
复制代码 代码如下:

<html>
<head>
<title>ajax test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">...
function ajaxRequest()...{
var url = $("#stockurl").val() + $("#stockinit").val();
$.ajax(...{
url: url,
type: 'GET',
dataType: 'html',
timeout: 2000,
success: function(response)...{
var stocks = response.split(';');
for(var i=0; i<stocks.length-1; i++)...{
var content = stocks[i];
var temp1 = content.split('=')[0];
var temp2 = content.split('=')[1];
var code = temp1.substr(temp1.length - 6, 6);
var temp3 = temp2.replace('"', '');
var name = temp3.split(',')[0];
var tday_f = temp3.split(',')[1];
var yest_f = temp3.split(',')[2];
var curr_f = temp3.split(',')[3];
var temp_f = curr_f - yest_f;
$('#a'+i).html(code);
$('#b'+i).html(name);
if(curr_f > yest_f) ...{
$('#c'+i).html("<font color='red'>" + curr_f + "</font>");
} else if(curr_f < yest_f) ...{
$('#c'+i).html("<font color='green'>" + curr_f + "</font>");
} else ...{
$('#c'+i).html(curr_f);
}
$('#d'+i).html(tday_f);
$('#e'+i).html(yest_f);
if(temp_f > 0) ...{
$('#f'+i).html("<font color='red'>" + temp_f.toFixed(2) + "</font>");
$('#g'+i).html("<font color='red'>" + ((temp_f / yest_f) * 100).toFixed(2) + "</font> % ");
} else if(temp_f < 0) ...{
$('#f'+i).html("<font color='green'>" + temp_f.toFixed(2) + "</font>");
$('#g'+i).html("<font color='green'>" + ((temp_f / yest_f) * 100).toFixed(2) + "</font> % ");
} else ...{
$('#f'+i).html(temp_f.toFixed(2));
$('#g'+i).html(((temp_f / yest_f) * 100).toFixed(2) + " % ");
}
$('#h'+i).html(temp3.split(',')[4]);
$('#i'+i).html(temp3.split(',')[5]);
}
}
});
}
$(document).ready(function()...{
var stocks = $("#stockinit").val().split(',');
for(var i=0; i<stocks.length; i++)...{
addRows();
}
$("#insrow").click(function()...{
var stockcd = $("#stockid").val();
if(stockcd == "")...{
alert("股票代号不能为空!");
$("#stockid").focus();
return;
}
if(stockcd.length != 6)...{
alert("股票代号只能是6位!");
$("#stockid").focus();
return;
}
var div = 'sh';
if(document.getElementById("sz_id").checked)...{ div = "sz";}
var stocks = $("#stockinit").val();
$("#stockinit").val(stocks + "," + div + stockcd);
addRows();
});
$("#delrow").click(function()...{
var table = document.getElementById("tableId");
var index = table.rows.length;
if (index < 2)...{
alert("已经没有可删除的行了!");
} else ...{
table.deleteRow(index - 1);
var stockvalue = $("#stockinit").val();
var count = stockvalue.split(',').length;
if(count == 1) ...{
stockvalue = "";
} else ...{
stockvalue = stockvalue.substr(0, stockvalue.length - 9);
}
$("#stockinit").val(stockvalue);
}
});
window.setInterval("ajaxRequest()",3000);
});
function addRows()...{
var table = document.getElementById("tableId");
var index = table.rows.length;
var str="";
var row = index - 1;
str+='<tr class="tr_cls">'
str+='<td align="center"><span id="' + "a" + row + '"></span></td>'
str+='<td align="center"><span id="' + "b" + row + '"></span></td>'
str+='<td align="center"><span id="' + "c" + row + '"></span></td>'
str+='<td align="center"><span id="' + "d" + row + '"></span></td>'
str+='<td align="center"><span id="' + "e" + row + '"></span></td>'
str+='<td align="center"><span id="' + "f" + row + '"></span></td>'
str+='<td align="center"><span id="' + "g" + row + '"></span></td>'
str+='<td align="center"><span id="' + "h" + row + '"></span></td>'
str+='<td align="center"><span id="' + "i" + row + '"></span></td>'
str+='</tr>';
$("#tablebody").append(str);
}
</script>
<style>...
.tr_cls {...}{
height:30px;
font-size:16px;
font-family:"Times New Roman", Times, serif;
background-color:#FFFFCC
}
</style>
</head>
<body>
<form>
<input type="hidden" id="stockurl" value="http://hq.sinajs.cn/list=" />
<input type="hidden" id="stockinit" value="sh000001,sz399001,sh601939,sh600016,sh600528,sh600667,sh601390,sh601857,sz000532,sh600019,sh601111,sh601600,sh601006,sh601333,sh601398,sh601988,sh601328" />
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr>
<td width="115px">
代号:<input type="text" id="stockid" size="6">
</td>
<td width="150px">
区分:上海<input type="radio" name="rad" id="sh_id" checked>深证<input type="radio" name="rad" id="sz_id">
</td>
<td width="40px">
<input type="button" id="insrow" value="行追加">
</td>
<td width="495px">
<input type="button" id="delrow" value="行削除">
</td>
</tr>
<tr>
<td colspan="4">
<div style="overflow-y:scroll; overflow-x:auto; height:392px; width:817px">
<table id="tableId" width="800" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr bgcolor="#3399FF" height="30px">
<th scope="col">股票代号</th>
<th scope="col">股票名称</th>
<th scope="col">当前价格</th>
<th scope="col">今日开盘</th>
<th scope="col">昨日收盘</th>
<th scope="col">当前差价</th>
<th scope="col">涨跌幅度</th>
<th scope="col">最高价格</th>
<th scope="col">最低价格</th>
</tr>
<tbody id="tablebody">
</tbody>
</table>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>