index.html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JQuery之股票信息</title>
<link href="css/Stock.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/Stock.js" type="text/javascript"></script>
</head>
<body>
<div id="300001"><a href="#">上证指数:</a><span></span></div>
<div id="000001"><a href="#">浦发银行:</a><span></span></div>
<div id="stock">
<div id="yes">昨天:<span></span></div>
<div id="tod">今天:<span></span></div>
<div id="now">当前:<span></span></div>
</div>
</body>
</html>
Stock.js文件
//保存服务器端返回的股票对象
var obj;
var divId;
$(function(){
var stockNode=$("#stock");
stockNode.css("border","1px solid black").css("background-color","#eee").width("200px")
.css("position","absolute").css("z-index","50");
stockNode.hide();
var aNodes=$("a");
//鼠标进入股票名称时的操作
aNodes.mouseover(function(event){
var aNode=$(this);
var divNode=aNode.parent();
divId=divNode.attr("id");
updateInfo();
//控制弹出框的位置
//var offset=aNode.offset();
//stockNode.css("left",offset.left+"px").css("top",offset.top+aNode.height()+"px");
var myEvent=event || window.event;
stockNode.css("left",myEvent.clientX+10+"px").css("top",myEvent.clientY+10+"px");
//显示弹出框
stockNode.show();
});
//鼠标离开股票名称时的操作
aNodes.mouseout(function(){
stockNode.hide();
});
getInfo();
//每一秒钟和服务器交互一次,更新数据信息
setInterval(getInfo,1000);
});
//更新弹出框中的信息
function updateInfo()
{
var stockObj=obj[divId];
for(var proName in stockObj){
if(proName !="name" && proName!="id"){
$("#"+proName).children("span").html(stockObj[proName]);
}
}
}
function getInfo()
{
//向服务器发送请求
$.get("handle/stock.ashx?t=" + (new Date()).valueOf(),function(data){
//接收解析数据
obj=eval(data);
//获取两只股票的当前指数
var szzs=obj["300001"];//obj.300001
var pfyh=obj["000001"];
/*
遍历一个对象
for(var stockid in obj)
{
var stock=obj[stockid];
}
*/
//找到相应的div节点
var sz= $("#300001").children("span")
sz.html(szzs.now);
if(szzs.now>szzs.yes){
//当前价格大于昨天收盘,则为红色
sz.css("color","red");
}else{
sz.css("color","green");
}
var pf=$("#000001").children("span")
pf.html(pfyh.now);
if(pfyh.now>szzs.pfyh){
//当前价格大于昨天收盘,则为红色
pf.css("color","red");
}else{
pf.css("color","green");
}
updateInfo();
});
}
stock.ashx一般处理程序文件
<%@ WebHandler Language="C#" Class="stock" %>
using System;
using System.Web;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Text;
public class stock : IHttpHandler {
Hashtable ht = new Hashtable();
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
init();
Random data=new Random();
double sz = data.NextDouble() * 20;
double pf = data.NextDouble() * 0.5;
//true涨,false跌
bool flagSz = ((int)(data.NextDouble() * 10)) % 2 == 0;
bool flagPf = ((int)(data.NextDouble() * 10)) % 2 == 0;
Stock szzs=(Stock)ht["300001"];
Stock pfyh=(Stock)ht["000001"];
double temp;
if (flagSz)
{
temp=szzs.Now + sz;
}
else
{
temp = szzs.Now - sz;
}
temp = Math.Round(temp, 2);
szzs.Now = temp;
if (flagPf)
{
temp = pfyh.Now + pf;
}
else
{
temp = pfyh.Now - pf;
}
temp = Math.Round(temp, 2);
pfyh.Now = temp;
//采用json的数据格式返回股票的信息
//1采用数组的方式返回两个股票信息
StringBuilder json = new StringBuilder();
//json.Append("[{name:\"").Append(szzs.Name).Append("\",id:\"").Append(szzs.Id).Append("\",yes:")
// .Append(szzs.Yesterday).Append(",tod:").Append(szzs.Today).Append(",now:")
// .Append(szzs.Now).Append("},{name:\"").Append(pfyh.Name).Append("\",id:\"")
// .Append(pfyh.Id).Append("\",yes:").Append(pfyh.Yesterday).Append(",tod:")
// .Append(pfyh.Today).Append(",now:").Append(pfyh.Now).Append("}]");
//1采用对象的方式返回两个股票信息
//以对象返回信息时,需要在最外面加上括号,否则页面解析会报错
json.Append("({")
.Append("\"")
.Append(szzs.Id).Append("\":{name:\"").Append(szzs.Name).Append("\",id:\"").Append(szzs.Id).Append("\",yes:")
.Append(szzs.Yesterday).Append(",tod:").Append(szzs.Today).Append(",now:").Append(szzs.Now)
.Append("},").Append("\"")
.Append(pfyh.Id).Append("\":{name:\"").Append(pfyh.Name).Append("\",id:\"").Append(pfyh.Id).Append("\",yes:")
.Append(pfyh.Yesterday).Append(",tod:").Append(pfyh.Today).Append(",now:").Append(pfyh.Now)
.Append("}})");
context.Response.Write(json);
}
private void init()
{
Stock szzs = new Stock(3000.0, 2999.0, "上证指数", "300001");
Stock pfyh = new Stock(23.22, 23.50, "浦发银行", "000001");
ht.Add(szzs.Id, szzs);
ht.Add(pfyh.Id, pfyh);
}
public bool IsReusable {
get {
return false;
}
}
}
Stock.cs股票实体类文件
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
///股票实体类
/// </summary>
public class Stock
{
public Stock() { }
public Stock(double yesterday, double today, string name, string id)
{
this.yesterday = yesterday;
this.today = today;
this.name = name;
this.id = id;
this.now = today;
}
private double yesterday;
public double Yesterday
{
get { return yesterday; }
set { yesterday = value; }
}
private double today;
public double Today
{
get { return today; }
set { today = value; }
}
private double now;
public double Now
{
get { return now; }
set { now = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string id;
public string Id
{
get { return id; }
set { id = value; }
}
}
分享到:
相关推荐
ASP.NET+JQuery实现Ajax无刷新技术,程序比较简单,只有一个ajax.aspx是动态页面,其余全是静态页面。因此,本程序是您学习Ajax的好范例,其使用的JQuery插件,也是目前Ajax技术依托的最强大、最流行的JS类库。
asp.net+query实现文件ajax上传。
jquery 分页(无刷新.net)源码 asp.net + jquery + sql server实现的无刷新分页源码下载
asp.net+jquery显示数据+分页
经典权威著作:ASP.NET+-+Advanced+ASP.NET+AJAX+Server+Controls+For.NET+Framework+3.5,+Addison+Wesley+2009
asp.net+jquery+ajax无刷新用户注册,登录,修改密码
asp.net ajax调用aspx、ajax调用ashx处理类方法、ajax调用webservice方法,返回多种数据类型等xml、html等。
1.无刷新分页控件,以Northwind数据库为示例, 2.支持多种分页样式选择,也可以自己修改源代码自定义 3.可以单击任意字段排序 4.MsSql数据库封装访问类,可以修改代码应用于其他数据库 5.继承自IHttpHandler接口...
最新版本请点击: http://download.csdn.net/source/2926477 ...---------------------------------------------------------------------------- ...客户端使用 AJAX 心跳包拉数据,应用 JQuery 框架实现页面效果;
Asp.net+jQuery+HttpHandler+抽象工厂+七层架构=经典实例
Asp.Net+Jquery实现的图片放大镜效果。如电子商城的商品详细页面的图片放大镜效果
Asp.net+Jquery做的自动补全功能(autocomplete) ,使用前请看帮助文档,有数据库以及表结构的介绍,只需改动webConfig的连接字符~,开发工具:VS2010+Sql2005
asp.net+jquery_json,
本例采用asp.net C#+ jquery +ajax的实现 简单实用的例子 供大家学习
asp.net+java+xml+jquery+sqlserver+linq+ajax中文教程,几乎包括了.net和java这两点语言所有的技术文档
ASP.NET+jQuery 实现google successtion
该项目完全抛弃传统的Table布局,全部采用先进的Css+Div,画面绚丽,手写代码实现Ajax效果,没有.net Ajax框架的bug,结合动画提高了用户的体验,因该项目系委托开发,仅能公开部分代码,望见谅。使用时请先运行App_...
一个基于ASP.net+Jquery+GridView实现无刷新TreeGrid源码例子
asp.net+jquery+ json 分页 两种分页样式
ASP.NET+AJAX分页ASP.NET+AJAX分页ASP.NET+AJAX分页ASP.NET+AJAX分页