日期:2007.7.31
近期Post了不少Javascript文章,还是收到不少支持,你们的回复是我写下去的动力,谢谢你们!
刚刚研究了一下 新浪的 财经板块,其中对股票数据的处理真的是跟我的 MVC模式的文章不谋而合啊。我顺手写了2段代码,大家看看。
Stock.html
< html >
< head >
< title > Truly's stock </ title >
< script src =data.js ></ script >
< style >
/* change_color */
.incolor { color : #FF0000 ; }
.decolor { color : #008000 ; }
#itemTickettime
{
font-size : 12px ;
}
span,div { font-size : 12px ; }
</ style >
</ head >
< body >
< script id =vsdata ></ script >
< input id =mystock value ='000001' >< br >< br >
< input id ='sh' type =radio name ='type' checked value =1 > sh < input type =radio name ='type' value =2 > sz
< br >< br >
< input type =button value =' Go ' onclick ='loadMyStockList()' > < input type =button value =' Stop ' onclick ='stopFresh()' >< br >< br >
< div class ="tbtb01" >
< span id ='name' ></ span >
< div >< span id ="itemMarket" > - </ span > < span id ='code' ></ span > 昨收 < span id ='s' ></ span > 今开 < span id ='k' ></ span ></ div >
</ div >
< div class ="tbtb02" >
< h3 id ="itemCurrent" class ="incolor" > - </ h3 >
< span class ="fRed01" id ="itemcurrprice" > - </ span > < span class ="fRed01" id ="itemDiffpercent" > - </ span >
< span id ="itemTickettime" > - </ span >
</ div >
</ body >
</ html >
Data.js
Interval_1s: 1 * 1000 ,
Interval_AginReq: 500 ,
url:'http: // hq.sinajs.cn/format=js&func=S_Finance.upconstants.setData();&list='
};
function $(id){ return document.getElementById(id);};
function $C(nodeName){ return document.createElement(nodeName);};
function gt(){ if ($('sh').checked) return 'sh' + $('mystock').value; return 'sz' + $('mystock').value;}
var timer;
var itemCurrent;
function loadMyStockList()
{
itemCurrent = $( " itemCurrent " );
fullcode = gt();
clearInterval(timer);
timer = setInterval( " Truly.load_data_script(AppConf.url+gt(),'vsdata'); " , 1000 );
}
function stopFresh()
{
clearInterval(timer);
}
var jk,zs;
var currprice,currnum;
var _A = function (t,c){t.appendChild(c)};
var fullcode = 'sh600390';
var Truly = {
load_data_script: function (url,idname)
{
var h = new Date().getHours();
var m = new Date().getMinutes();
if (h < 9 || (h > 15 ) || (h == 15 && m > 10 )) stopFresh();
var obj = $(idname);
if (obj){obj.parentNode.removeChild(obj);};
var newscript = $C( " script " );
newscript.type = " text/javascript " ;
newscript.src = url;
newscript.id = idname;
_A(document.body,newscript);
}
}
var S_Finance = {};
S_Finance.upconstants = {itemTickettime: null ,servertime: null ,
setData: function (){
this .itemTickettime = $( " itemTickettime " ).innerHTML;
eval( " this.hq_str_symbol = hq_str_ " + fullcode);
if ( this .hq_str_symbol != null && this .hq_str_symbol != undefined && this .hq_str_symbol != " undefined " && this .hq_str_symbol != "" )
{
this .chgedary = new Array();
this .chgedarylen = 0 ;
this .cacheidx = 0 ;
this .setValue( this .hq_str_symbol);
this .initflag = 1 ;
}
else
{
setTimeout( this ._updata._Bind( this ),AppConf.Interval_AginReq);
return true ;
};
this .setFlash = function (tid)
{
var _tidColor = $(tid).style.color;
setTimeout( function (){$(tid).style.color = " #000000 " ;}, 400 );
setTimeout( function (){$(tid).style.color = _tidColor;}, 600 );
setTimeout( function (){$(tid).style.color = " #000000 " ;}, 800 );
setTimeout( function (){$(tid).style.color = _tidColor;}, 1000 );
};
if ( this .itemTickettime != $( " itemTickettime " ).innerHTML)
{
$( " itemcurrprice " ).style.fontFamily = " Arial " ;
$( " itemcurrprice " ).style.fontSize = " 11px " ;
$( " itemDiffpercent " ).style.fontFamily = " Arial " ;
$( " itemDiffpercent " ).style.fontSize = " 11px " ;
this .setFlash( " itemCurrent " );
this .setFlash( " itemcurrprice " );
this .setFlash( " itemDiffpercent " );
};
return true ;
},
setValue: function (data)
{
var dataContent = data;
if (dataContent){
dataContent.replace( " \r " , "" );dataContent.replace( " \n " , "" );
var dataArray = dataContent.split( " , " );
var arrayLen = dataArray.length;
}
$( " itemTickettime " ).innerHTML = dataArray[ 30 ] + " " + dataArray[ 31 ];
$( " itemCurrent " ).innerHTML = dataArray[ 3 ];
$( " name " ).innerHTML = dataArray[ 0 ];
$( " code " ).innerHTML = fullcode;
currprice = (dataArray[ 3 ] * 1000 - dataArray[ 2 ] * 1000 ) / 1000 ;
currnum = (dataArray[ 3 ] * 1000 - dataArray[ 2 ] * 1000 ) / ( 10 * dataArray[ 2 ]);
$( " itemcurrprice " ).innerHTML = currprice;
$( " itemDiffpercent " ).innerHTML = Math.round(currnum * 100 ) / 100 + ' % ';
jk = dataArray[ 1 ];
zs = dataArray[ 2 ];
$( " k " ).innerHTML = jk;
$( " s " ).innerHTML = zs;
if (dataArray[ 3 ] > zs) itemCurrent.style.color = '#FF0000';
else if (dataArray[ 3 ] == zs) itemCurrent.style.color = '# 000000 ';
else itemCurrent.style.color = '# 008000 ';
$( " itemcurrprice " ).style.color = itemCurrent.style.color;
$( " itemDiffpercent " ).style.color = itemCurrent.style.color;
}
}
呵呵,写的很简单就不往首页放了。大家慢慢看,玩股票的兄弟们祝你们都赚到钱,不玩股票的就多研究研究技术。这里下载源码。
enjoy code!