使用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 相关文章推荐
jquery.validate分组验证代码
Mar 17 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
Feb 07 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
Jan 18 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
layui动态表头的实现代码
Aug 22 Javascript
JavaScript实现轮播图片完整代码
Mar 07 Javascript
深入理解Vue的数据响应式
May 15 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服务器实现多session并发运行
2006/10/09 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
文史专业毕业生自荐信
2013/11/17 职场文书
上课迟到检讨书
2014/02/19 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
python中%格式表达式实例用法
2021/06/18 Python
Python Numpy库的超详细教程
2022/04/06 Python