使用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学习笔记一 之 数据类型
Dec 15 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
如何改进javascript代码的性能
Apr 02 Javascript
JavaScript中判断函数、变量是否存在
Jun 10 Javascript
Javascript类型系统之undefined和null浅析
Jul 13 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 Javascript
了解VUE的render函数的使用
Jun 08 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
JS实现TITLE悬停长久显示效果完整示例
Feb 11 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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输出表格的实现代码(修正版)
2010/12/29 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python daemon守护进程实现
2016/08/27 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
2014年保洁工作总结
2014/11/24 职场文书
新学期主题班会
2015/08/17 职场文书
三好学生竞选稿
2015/11/21 职场文书