使用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 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
Dec 12 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
JS无缝滚动效果实现方法分析
Dec 21 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
Apr 13 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
原生js封装的ajax方法示例
Aug 02 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
Vue实现按钮级权限方案
Nov 21 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中的串行化变量和序列化对象
2006/09/05 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
理解javascript闭包
2015/12/15 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
python技能之数据导出excel的实例代码
2017/08/11 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
pandas 选择某几列的方法
2018/07/03 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
python 产生token及token验证的方法
2018/12/26 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
django如何自己创建一个中间件
2019/07/24 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
UNIX文件系统常用命令
2012/05/25 面试题
销售总监岗位职责
2014/01/04 职场文书
户外婚礼策划方案
2014/02/08 职场文书
班主任新年寄语
2014/04/04 职场文书
检讨书范文300字
2015/01/28 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书