使用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 相关文章推荐
CSDN轮换广告图片轮换效果
Mar 27 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
Javascript中设置默认参数值示例
Sep 11 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
May 07 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
node.js的http.createServer过程深入解析
Jun 06 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
2019最新21个MySQL高频面试题介绍
Feb 06 Javascript
js 执行上下文和作用域的相关总结
Feb 08 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
PHP7.0安装笔记整理
2015/08/28 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
python字符串替换的2种方法
2014/11/30 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python 实现目录复制的三种小结
2019/12/04 Python
Python json读写方式和字典相互转化
2020/04/18 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
兼职业务员岗位职责
2014/01/01 职场文书
十八大演讲稿
2014/05/22 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
领导参观欢迎词
2015/01/26 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python