最近用jquery写了一个客户端实时刷新的小例子,代码如下
客户端html代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>实时显示数据</title>
<script type="text/javascript" src="jslib/jquery.js"></script>
<script type="text/javascript" src="jslib/player.js"></script>
</head>
<body>
<div id="0001"><a href="#">许飞:</a><span></span></div>
<div id="0002"><a href="#">孙燕姿:</a><span></span></div>
<div id="player">
<div id="yesterday">昨天:<span></span></div>
<div id="now">现在:<span></span></div>
</div>
</body>
</html>
js代码
var obj;
var id;
$(document).ready(function() {
var playerdiv = $("#player").css("border","1px solid black").width("100px").css("position","absolute").css("z-index",100);
playerdiv.hide();
var as = $("a");
as.mouseover(function(event) {
var aNode = $(this);
var parentNode = aNode.parent();
id = parentNode.attr("id");
var myEvent = event || window.event;
playerdiv.css("left",myEvent.clientX + 10 + "px").css("top",myEvent.clientY + 10 + "px");
updata();
playerdiv.show();
});
as.mouseout(function() {
playerdiv.hide();
});
getInfo();
setInterval(getInfo, 1000); //设置定时器函数,每个1000毫秒执行一次
});
function getInfo() {
$.get("GetPlayerInfo", null, function(data) {
//obj = eval(data); //如果指明返回的类型为json格式就不必用eval方法转化
obj = data;
var player1 = obj["0001"];
var player2 = obj["0002"];
var span1 = $("#0001").children("span");
span1.html(player1.now);
var span2 = $("#0002").children("span");
span2.html(player2.now);
updata();
},"json");
}
function updata() {
var player = obj[id];
for (var property in player) {
if (property != "name") {
$("#"+property).children("span").html(player[property]);
}
}
}
服务器端代码,我用的是Servlet
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-4-12
* Time: 10:07:49
* To change this template use File | Settings | File Templates.
*/
public class GetPlayerInfo extends HttpServlet {
private HashMap<String, Player> players = null;
public void init(ServletConfig servletConfig) throws ServletException {
players = new HashMap<String, Player>();
Player player1 = new Player("0001", "许飞", 1005.0);
Player player2 = new Player("0002", "孙燕姿", 1100.0);
players.put(player1.getId(), player1);
players.put(player2.getId(), player2);
}
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
doGet(httpServletRequest, httpServletResponse);
}
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
httpServletResponse.setContentType("text/html;charset=UTF-8");
httpServletResponse.setHeader("Cache-Control","no-cache");
Player player1 = players.get("0001");
Player player2 = players.get("0002");
double temp = Math.random() * 10;
temp = (int)(temp + player1.getNow())*100/100;
player1.setNow(temp);
temp = Math.random() * 10 + 5;
temp = (int)(temp + player2.getNow())*100/100;
player2.setNow(temp);
StringBuilder builder = new StringBuilder(); //返回的是json数据的格式
builder.append("({\"").append(player1.getId()).append("\":")
.append("{name:\"").append(player1.getName())
.append("\",yesterday:").append(player1.getYesterday())
.append(",now:").append(player1.getNow())
.append("},")
.append("\"").append(player2.getId()).append("\":")
.append("{name:\"").append(player2.getName())
.append("\",yesterday:").append(player2.getYesterday())
.append(",now:").append(player2.getNow())
.append("}})");
PrintWriter out = httpServletResponse.getWriter();
System.out.println(builder);
out.print(builder);
}
}
bean的代码如下
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-4-12
* Time: 10:05:55
* To change this template use File | Settings | File Templates.
*/
public class Player {
private String id;
private String name;
private double yesterday;
private double now;
public Player(String id, String name, double yesterday) {
this.id = id;
this.name = name;
this.yesterday = yesterday;
this.now = yesterday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getYesterday() {
return yesterday;
}
public void setYesterday(double yesterday) {
this.yesterday = yesterday;
}
public double getNow() {
return now;
}
public void setNow(double now) {
this.now = now;
}
}
分享到:
相关推荐
在"jQuery highcharts实时更新数据的图表插件源码.zip"这个压缩包中,很可能包含了一个完整的示例项目,用于展示如何使用jQuery与Highcharts协同工作来实现实时数据更新的图表。 首先,我们要了解jQuery和...
今天我们要来分享一款基于jQuery的highcharts实时图表插件,highcharts图表插件定义了每隔一秒钟更新数据,然后根据每个数据点绘制一条折线,随着数据的更新,折线也就会不停的向前移动,形成一个类似CPU实时监控的...
本教程将深入探讨如何使用jQuery实现动态更改table表格数据,让你的网页表格具有实时编辑功能,提升用户体验。 首先,我们需要理解HTML表格的基本结构。一个基本的表格由`<table>`元素开始,包含若干个`<tr>`(行)...
在实际应用中,我们可以结合jQuery的DOM操作方法,如`.html()`, `.append()`, `.attr()`等,将接收到的JSON数据动态地展示在网页上,实现动态更新和交互。 总之,jQuery读取JSON数据不仅提高了效率,也提升了代码的...
这可能用于更新可视区域内的数据项。例如,如果当前显示的是数组的中间部分,向左移动可能意味着将数组末尾的元素移到开头,向右移动则是将数组开头的元素移到末尾。这可以通过数组的`unshift()`(添加元素到数组...
2. **动态数据更新**:演示如何利用jQuery实时获取和更新数据,使大屏内容始终保持最新状态。 3. **交互式功能**:可能包含缩放、平移、图例切换等交互功能,让用户能够自由探索数据。 4. **自定义样式**:通过CSS...
结合这些知识点,我们可以构建一个简单的实时数据库更新系统,使用jQuery Timers作为心跳检测机制,定期与服务器交换数据,保持前端界面的实时更新。同时,需要注意的是,对于生产环境,还需要关注性能优化、错误...
jQuery highcharts适时更新加载的图表插件,当图片加载数据后,立即绘制出曲线图,若数据有更新,会适时加载数据,并重新生成曲线图,是一款适时加载数据并更新曲线图的图表插件。在测试时,你会发现,图片自右向左...
在Web开发中,Servlet和...Servlet在后台生成数据,以JSON格式返回,而jQuery在前端接收到数据后,动态填充到表格中,为用户提供实时更新的界面。这种方式不仅提高了用户体验,还降低了服务器与客户端之间的通信成本。
在本项目中,"jquery+echarts+php实时动态图表显示"是一个综合性的技术实践,它结合了前端的jQuery、ECharts和后端的PHP,实现了动态数据的实时图表展示。接下来,我们将深入探讨这些技术及其在项目中的应用。 首先...
通过`$.ajax`或者其他Ajax方法,我们可以实时从服务器获取数据并更新图表,实现动态统计分析。 在项目中,你可能需要结合`jqchart0.21.tar.gz`和`jqchart0.2.tar.gz`这两个版本的jqChart库。它们可能包含了不同版本...
**jQuery AJAX 前后台数据传输详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于实现在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。jQuery库为开发者提供了简单易用的...
总的来说,使用jQuery实现数据动态加载分页需要结合前端和后端的知识,通过监听用户滚动事件、发送AJAX请求、处理服务器返回的数据以及适当地更新页面内容,可以创建出一个流畅且高效的分页系统。
另外,如果需要更复杂的交互功能,如点击扇区触发事件,或者实时更新数据,可以通过监听Chart.js的事件和使用jQuery的Ajax方法来实现。例如,当用户点击饼图时,可以弹出一个模态框显示详细信息: ```javascript ...
这在处理大量数据或实时更新时特别有用。例如: ```javascript $("#someDiv").load("path/to/data.html"); ``` **5. 插件扩展** jQuery社区提供了丰富的插件,包括数据渲染插件,如jQuery tmpl。例如,使用jQuery...
在响应成功后,可以将接收到的数据应用到页面上,实现实时更新。 数据展示的另一个重要方面是分页。jQuery可以与后端配合实现分页功能,使用`.each()`遍历数据并按照页码显示相应部分。同时,可以添加导航按钮,...
通过Ajax,jQuery可以无刷新地与服务器进行通信,实现数据的实时更新。 在这个示例中,通常会有一个基于JSP或HTML的前端页面,使用jQuery获取用户输入,通过Ajax调用Struts2的Action。Action进一步调用Spring中的...
5. **实时更新**: - 使用`.hide()`和`.show()`方法隐藏或显示符合/不符合条件的行,实现动态筛选效果。 - 可以使用`.data()`方法为表格行添加额外信息,比如关联的筛选条件,以便更快地更新状态。 6. **性能优化...
本文将深入探讨“jQuery动态表格数据分页插件”,这款插件能够帮助开发者轻松实现动态表格数据的分页显示,同时支持自定义设置分页参数,以提高网页的性能和用户交互性。 首先,jQuery是一个广泛使用的JavaScript库...