使用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类中定义原型方法的两种实现的区别
Mar 08 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
Nov 15 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
javascript 拷贝节点cloneNode()使用介绍
Apr 03 Javascript
深入探讨javascript函数式编程
Oct 11 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
详解Angular 4.x Injector
May 04 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 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
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
node.js入门教程
2014/06/01 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
jquery获取transform里的值实现方法
2017/12/12 jQuery
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
layui表格数据重载
2019/07/27 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
体育专业个人的求职信范文
2013/09/21 职场文书
将相和教学反思
2014/02/04 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
初三毕业评语
2014/12/26 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android