使用ajax技术无刷新动态调用股票信息

由于新浪财金频道网页加载速度缓慢,作者使用jQuery创建了一个自动读取新浪股票实时数据的页面,该页面每3秒自动更新一次股票信息,并通过颜色区分股价涨跌。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新浪的财金频道一直感觉做得很好。但由于最近网速慢的缘故,查看股票信息时网页老是打不开。这几天一直在研究ajax,于是用jquery自己做了一个自动读取新浪股票实时数据的页面。

<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(){
        $.ajax(
{
            url: 
'http://hq.sinajs.cn/list=sh000001,sh601939,sh600016,sh600528,sh600667,sh601390,sh601398,sh601857,sh600028',
            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 - 66);
                    
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]);
                }

            }

        }
);
    }


    
function pageInit() {
        window.setInterval(
"ajaxRequest()",3000); 
    }

    
</script>
    
<style>
    .tr_cls 
{
        height
:30px;
        font-size
:16px;
        font-family
:"Times New Roman", Times, serif;
        background-color
:#FFFFCC
    
}

    
</style>
</head>
<body onLoad="pageInit();">
    
<form>
        
<table 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>
            
<tr class="tr_cls">
                
<td align="center"><span id="a0"></span></td>
                
<td align="center"><span id="b0"></span></td>
                
<td align="center"><span id="c0"></span></td>
                
<td align="center"><span id="d0"></span></td>
                
<td align="center"><span id="e0"></span></td>
                
<td align="center"><span id="f0"></span></td>
                
<td align="center"><span id="g0"></span></td>
                
<td align="center"><span id="h0"></span></td>
                
<td align="center"><span id="i0"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a1"></span></td>
                
<td align="center"><span id="b1"></span></td>
                
<td align="center"><span id="c1"></span></td>
                
<td align="center"><span id="d1"></span></td>
                
<td align="center"><span id="e1"></span></td>
                
<td align="center"><span id="f1"></span></td>
                
<td align="center"><span id="g1"></span></td>
                
<td align="center"><span id="h1"></span></td>
                
<td align="center"><span id="i1"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a2"></span></td>
                
<td align="center"><span id="b2"></span></td>
                
<td align="center"><span id="c2"></span></td>
                
<td align="center"><span id="d2"></span></td>
                
<td align="center"><span id="e2"></span></td>
                
<td align="center"><span id="f2"></span></td>
                
<td align="center"><span id="g2"></span></td>
                
<td align="center"><span id="h2"></span></td>
                
<td align="center"><span id="i2"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a3"></span></td>
                
<td align="center"><span id="b3"></span></td>
                
<td align="center"><span id="c3"></span></td>
                
<td align="center"><span id="d3"></span></td>
                
<td align="center"><span id="e3"></span></td>
                
<td align="center"><span id="f3"></span></td>
                
<td align="center"><span id="g3"></span></td>
                
<td align="center"><span id="h3"></span></td>
                
<td align="center"><span id="i3"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a4"></span></td>
                
<td align="center"><span id="b4"></span></td>
                
<td align="center"><span id="c4"></span></td>
                
<td align="center"><span id="d4"></span></td>
                
<td align="center"><span id="e4"></span></td>
                
<td align="center"><span id="f4"></span></td>
                
<td align="center"><span id="g4"></span></td>
                
<td align="center"><span id="h4"></span></td>
                
<td align="center"><span id="i4"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a5"></span></td>
                
<td align="center"><span id="b5"></span></td>
                
<td align="center"><span id="c5"></span></td>
                
<td align="center"><span id="d5"></span></td>
                
<td align="center"><span id="e5"></span></td>
                
<td align="center"><span id="f5"></span></td>
                
<td align="center"><span id="g5"></span></td>
                
<td align="center"><span id="h5"></span></td>
                
<td align="center"><span id="i5"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a6"></span></td>
                
<td align="center"><span id="b6"></span></td>
                
<td align="center"><span id="c6"></span></td>
                
<td align="center"><span id="d6"></span></td>
                
<td align="center"><span id="e6"></span></td>
                
<td align="center"><span id="f6"></span></td>
                
<td align="center"><span id="g6"></span></td>
                
<td align="center"><span id="h6"></span></td>
                
<td align="center"><span id="i6"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a7"></span></td>
                
<td align="center"><span id="b7"></span></td>
                
<td align="center"><span id="c7"></span></td>
                
<td align="center"><span id="d7"></span></td>
                
<td align="center"><span id="e7"></span></td>
                
<td align="center"><span id="f7"></span></td>
                
<td align="center"><span id="g7"></span></td>
                
<td align="center"><span id="h7"></span></td>
                
<td align="center"><span id="i7"></span></td>
            
</tr>
            
<tr class="tr_cls">
                
<td align="center"><span id="a8"></span></td>
                
<td align="center"><span id="b8"></span></td>
                
<td align="center"><span id="c8"></span></td>
                
<td align="center"><span id="d8"></span></td>
                
<td align="center"><span id="e8"></span></td>
                
<td align="center"><span id="f8"></span></td>
                
<td align="center"><span id="g8"></span></td>
                
<td align="center"><span id="h8"></span></td>
                
<td align="center"><span id="i8"></span></td>
            
</tr>
        
</table>
    
</form>
</body>
</html>

习惯用prototype的,把脚本部分的代码替换一下即可。

<script type="text/javascript" src="prototype.js"></script>
    
<script type="text/javascript">
    
function ajaxRequest(){
        
var myAjax = new Ajax.Request(
            
'http://hq.sinajs.cn/list=sh000001,sh601939,sh600016,sh600528,sh600667,sh601390,sh601398,sh601857,sh600028',
            
{
                method: 
'get',
                onComplete: setData
            }

        );
    }


    
function setData(response) {
        
var contents = response.responseText;
        
var stocks = contents.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 - 66);
            
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).innerHTML = code;
            $(
'b'+i).innerHTML = name;
            $(
'c'+i).innerHTML = curr_f;
            
if(curr_f > yest_f) {
                $(
'c'+i).innerHTML = "<font color='red'>" + curr_f + "</font>";
            }
 else if(curr_f < yest_f) {
                $(
'c'+i).innerHTML = "<font color='green'>" + curr_f + "</font>";
            }
 else {
                $(
'c'+i).innerHTML = curr_f;
            }

            $(
'd'+i).innerHTML = tday_f;
            $(
'e'+i).innerHTML = yest_f;
            
if(temp_f > 0{
                $(
'f'+i).innerHTML = "<font color='red'>" + temp_f.toFixed(2+ "</font>";
                $(
'g'+i).innerHTML = "<font color='red'>" + ((temp_f / yest_f) * 100).toFixed(2+ "</font> %";
            }
 else if(temp_f < 0{
                $(
'f'+i).innerHTML = "<font color='green'>" + temp_f.toFixed(2+ "</font>";
                $(
'g'+i).innerHTML = "<font color='green'>" + ((temp_f / yest_f) * 100).toFixed(2+ "</font> %";
            }
 else {
                $(
'f'+i).innerHTML = temp_f.toFixed(2);
                $(
'g'+i).innerHTML = ((temp_f / yest_f) * 100).toFixed(2+ " % ";
            }

            $(
'h'+i).innerHTML = temp3.split(',')[4];
            $(
'i'+i).innerHTML = temp3.split(',')[5];
        }

    }


    
function pageInit() {
        window.setInterval(
"ajaxRequest()",3000); 
    }

    
</script>

当然页面部分完全可以由脚本自动生成,以及页面动态增减股票信息等功能,就等日后修改吧。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值