使用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 上传图片预览问题
Dec 06 Javascript
JavaScript中的console.time()函数详细介绍
Dec 29 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
BootStrap 表单控件之单选按钮水平排列
May 23 Javascript
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
vue项目如何刷新当前页面的方法
May 18 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
微信小程序实现拍照和相册选取图片
May 09 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
让任务管理器中的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实现根据银行卡号判断银行
2015/04/29 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
党员年终民主评议的自我评价
2013/11/05 职场文书
技校个人求职信范文
2014/01/25 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
社区服务活动总结
2014/05/07 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
城管年度个人总结
2015/02/28 职场文书
中学教师教学工作总结
2015/08/13 职场文书
队名及霸气口号大全
2015/12/25 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js
Oracle锁表解决方法的详细记录
2022/06/05 Oracle