使用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 相关文章推荐
为Extjs加加速(javascript加速)
Aug 19 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
js实现照片墙功能实例
Feb 05 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 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实现字符串首字母转换成大写的方法
2015/03/17 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
举例讲解Python中is和id的用法
2015/04/03 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
详解python中的json的基本使用方法
2016/12/21 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python实现搜索算法的实例代码
2020/01/02 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
医院营销工作计划
2015/01/16 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
承兑汇票延期证明
2015/06/23 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
使用Python获取字典键对应值的方法
2022/04/26 Python