使用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 相关文章推荐
javascript IE中的DOM ready应用技巧
Jul 23 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
jquery Moblie入门—hello world的示例代码学习
Jan 08 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
JavaScript检测上传文件大小的方法
Jul 22 Javascript
百度地图api如何使用
Aug 03 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
仿iframe效果Aajx文件上传实例
Nov 18 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
Sep 23 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php类常量的使用详解
2013/06/08 PHP
CURL状态码列表(详细)
2013/06/27 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP实现微信退款功能
2018/10/02 PHP
关于js datetime的那点事
2011/11/15 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
python爬取个性签名的方法
2018/06/17 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
python中如何使用虚拟环境
2020/10/14 Python
如何利用python 读取配置文件
2021/01/06 Python
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
感恩的演讲稿
2014/05/06 职场文书
植树造林的宣传标语
2014/06/23 职场文书
化学教育专业求职信
2014/07/08 职场文书
教师节慰问信
2015/02/15 职场文书
结婚司仪主持词
2015/06/29 职场文书