使用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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
Javascript 按位左移运算符使用介绍(
Feb 04 Javascript
JS实现图片无间断滚动代码汇总
Jul 30 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
浅析vue中的MVVM实现原理
Mar 04 Javascript
原生js实现贪食蛇小游戏的思路详解
Nov 26 Javascript
jquery css实现流程进度条
Mar 26 jQuery
使用 Jest 和 Supertest 进行接口端点测试实例详解
Apr 25 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使用codebase生成随机数
2014/03/25 PHP
PHP精确计算功能示例
2016/11/29 PHP
php实现网页端验证码功能
2017/07/11 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
js数组操作常用方法
2014/05/08 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
js实现简单扫雷
2020/11/27 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python字符串逐字符或逐词反转方法
2015/05/21 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
python爬取内容存入Excel实例
2019/02/20 Python
大学生个人总结的自我评价
2013/10/05 职场文书
安全生产计划书
2014/05/04 职场文书
大学生村官考核材料
2014/05/23 职场文书
大学生暑假实习总结
2015/07/13 职场文书
《包身工》教学反思
2016/02/23 职场文书
如何在Python中创建二叉树
2021/03/30 Python