使用EXT实现无刷新动态调用股票信息


Posted in Javascript onNovember 01, 2008

说句老实话,我目前还对Ext技术不是很熟,所以写的代码自己也觉得怪怪的,有什么不对的地方,还望赐教。
使用的Ext版本是ext-2.2,下载地址为:http://www.extjs.com/products/extjs/download.php
下载Ext JS 2.2 SDK,解压后拷贝resources文件夹至工作目录。
在resources文件夹下新建jscript文件夹,并拷贝ext根目录下ext-all.js文件及adapter\ext\ext-base.js文件至jscript文件夹下,并新建stock.js文件,代码如下:

function ajaxRequest(){ 
Ext.Ajax.request({ 
url: 'http://hq.sinajs.cn/list=sh000001,sh601939,sh600016,sh600528,sh600667,sh601390,sh601398,sh601857,sh600028,', 
success: function(response){ 
var stocks = response.responseText.split(';'); 
var length = stocks.length - 2; 
var dataset = new Array(length); 
for(var i=0; i<length; 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; 
var data_i = new Array(9); 
data_i[0] = code; 
data_i[1] = name; 
data_i[2] = curr_f; 
data_i[3] = tday_f; 
data_i[4] = yest_f; 
data_i[5] = temp_f.toFixed(2); 
data_i[6] = ((temp_f / yest_f) * 100).toFixed(2); 
data_i[7] = temp3.split(',')[4]; 
data_i[8] = temp3.split(',')[5]; 
dataset[i] = data_i; 
} 
var store = new Ext.data.SimpleStore({ 
fields: [ 
{name: 'a1'}, 
{name: 'a2'}, 
{name: 'a3'}, 
{name: 'a4'}, 
{name: 'a5'}, 
{name: 'a6'}, 
{name: 'a7'}, 
{name: 'a8'}, 
{name: 'a9'} 
] 
}); 
//store.loadData(dataset); 
var grid = new Ext.grid.GridPanel({ 
//renderTo: document.body, 
store: store, 
columns: [ 
{header: "股票代号", width: 100, sortable: true, dataIndex: 'a1', id:'a1'}, 
{header: "股票名称", width: 100, sortable: true, dataIndex: 'a2'}, 
{header: "当前价格", width: 100, sortable: true, dataIndex: 'a3'}, 
{header: "今日开盘", width: 100, sortable: true, dataIndex: 'a4'}, 
{header: "昨日收盘", width: 100, sortable: true, dataIndex: 'a5'}, 
{header: "当前差价", width: 100, sortable: true, dataIndex: 'a6', renderer: change}, 
{header: "涨跌幅度", width: 100, sortable: true, dataIndex: 'a7', renderer: change}, 
{header: "最高价格", width: 100, sortable: true, dataIndex: 'a8'}, 
{header: "最低价格", width: 100, sortable: true, dataIndex: 'a9'} 
], 
stripeRows: true, 
autoExpandColumn: 'a1', 
height:240, 
width:740, 
title:'股票信息一览' 
}); 
if(document.getElementById("stockgrid").innerHTML == ""){ 
grid.render('stockgrid'); 
grid.getSelectionModel().selectFirstRow(); 
} 
grid.store.loadData(dataset); 
} 
}); 
} 
function change(val){ 
if(val < 0){ 
return '<span style="color:green;">' + val + '</span>'; 
}else if(val > 0){ 
return '<span style="color:red;">' + val + '</span>'; 
} 
return val; 
} 
Ext.onReady(function(){ 
//修正页面启动时提示下载http://extjs.com/s.gif的问题 
Ext.BLANK_IMAGE_URL = "resources/images/default/s.gif"; 
Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 
ajaxRequest(); 
window.setInterval("ajaxRequest()",3000); 
});

在工作目录下新建stock.html文件,代码如下: 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gbk"> 
<title>股票信息</title> 
<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" /> 
<script type="text/javascript" src="resources/jscript/ext-base.js"></script> 
<script type="text/javascript" src="resources/jscript/ext-all.js"></script> 
<script type="text/javascript" src="resources/jscript/stock.js"></script> 
</head> 
<body> 
<div id="stockgrid"></div> 
</body> 
</html>

从这里可以看到,使用Ext技术,动态页面从页面表现层到数据取得全部都交由Ext来处理。
Javascript 相关文章推荐
js 获取input点选按钮的值的方法
Apr 14 Javascript
js格式化时间小结
Nov 03 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
JavaScript中的parse()方法使用简介
Jun 12 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
详解webpack打包后如何调试的方法步骤
Nov 07 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
Layui实现带查询条件的分页
Jul 27 Javascript
javascript中的相等操作符(==与===区别)
Dec 21 Javascript
js获取本日、本周、本月的时间代码
Feb 01 Javascript
vue使用canvas实现移动端手写签名
Sep 22 Javascript
让任务管理器中的CPU跳舞的js代码
Nov 01 #Javascript
js CSS操作方法集合
Oct 31 #Javascript
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 #Javascript
JS Array对象入门分析
Oct 30 #Javascript
ajaxControlToolkit AutoCompleteExtender的用法
Oct 30 #Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
Oct 29 #Javascript
关于B/S判断浏览器断开的问题讨论
Oct 29 #Javascript
You might like
用php和MySql来与ODBC数据连接
2006/10/09 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
JavaScript this关键字的深入详解
2021/01/14 Javascript
Python递归函数实例讲解
2019/02/27 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
职务聘任书范文
2014/03/29 职场文书
初中家长寄语
2014/04/02 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
高三毕业评语
2014/12/31 职场文书
加班费申请报告
2015/05/15 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
宝塔更新Python及Flask项目的部署
2022/04/11 Python