`
dky_rl
  • 浏览: 67030 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

Ajax实例 实时数据显示 自动补全

阅读更多
实时数据显示
var obj;
var sid;
$(document).ready(function(){
	var stocknode = $("#stock").css("border","1px solid black").width("100px")
		.css("position","absolute").css("z-index","99").css("background-color","yellow");
	stocknode.hide();
	
	var as = $("a");
	as.mouseover(function (event){
		//找到当前股票代码
		var aNode=$(this);
		var divNode=aNode.parent();
		sid = divNode.attr("id");
		//找到对应股票的对象
		updatediv();
		/*
		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+5+"px").css("top",myEvent.clientY+5+"px");
		stocknode.show();
	});
	
	as.mouseout(function (){
		stocknode.hide();
	});
	getInfo();
	setInterval(getInfo,1000);
});
function getInfo(){
		$.get("/AjaxTrain/servlet/GetInfo?timestampt=" + new Date().getTime(),null,function(data){
		obj = eval(data);
		var s1 = obj["300001"];
		var s2 = obj["000001"];//obj.300001
		/*
			遍历一个js对象
			for(var stockid in obj){
				var stock = obj[stockid];
			}
		*/
		var ss = s1.now;
		span1 = $("#300001").children("span");
		span1.html(s1.now);
		if(s1.now>s1.yesterday){
			span1.css("color","red");
		}else{
			span1.css("color","green");
		}
		
		span2 = $("#000001").children("span")
		span2.html(s2.now);
		if(s2.now>s2.yesterday){
			span2.css("color","red");
		}else{
			span2.css("color","green");
		}
		updatediv();
	})
}

function updatediv(){
	var stockobj = obj[sid];
	for(var proname in stockobj){
		if(proname!="name"){
			$("#"+proname).children("span").html(stockobj[proname]);
		}
	}
}

 

package com.cn;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetInfo extends HttpServlet {
	@Override
	public void init() throws ServletException {
		
		stocks = new HashMap<String,Stock>();
		Stock a1 = new Stock(3000.0,2990.1,"上证指数","300001");
		Stock a2 = new Stock(23.22,23.50,"浦发银行","000001");
		stocks.put(a1.getId(), a1);
		stocks.put(a2.getId(), a2);
		System.out.println(stocks);
	}

	private HashMap<String,Stock> stocks;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		double sz = Math.random() * 20;
		double pf = Math.random() * 0.5;
		boolean flagsz = ((int)(Math.random()*10))%2==0;
		boolean flagpf = ((int)(Math.random()*10))%2==0;
		
		Stock s1 = stocks.get("300001");
		Stock s2 = stocks.get("000001");
		double temp;
		if(flagsz){
			temp = s1.getNow() + sz;
		}else{
			temp = s1.getNow() - sz;
		}
		temp = (int)(temp*100)/100.0;
		s1.setNow(temp);
		
		if(flagpf){
			temp = s2.getNow() + pf;
		}else{
			temp = s2.getNow() - pf;
		}
		temp= (int)(temp*100)/100.0;
		s2.setNow(temp);
		
		response.setContentType("text/html;charset=GBK");
		PrintWriter out = response.getWriter();
		//out.println(s1+"<br>"+s2);
		
		/**
		 * 封装成JSON数据格式
		 * 
		 * 以对象方式:
		 * ({
		 * name1:{
		 * 	name:"ssss",id:"dddd",yesterday:123,today:343,now:321
		 * 		},
		 * name2:{
		 *  name:"ssss",id:"dddd",yesterday:123,today:343,now:321
		 *  	}
		 * })
		 * 
		 * 以数组方式:
		 * [{},{}]其中{}表示一个对象  中间用逗号分隔
		 * [{
		 * 	  name:"s1.getName()",
		 * 	  id:"s1.getId()",
		 * 	  yesterday:s1.getYesterday(),
		 * 	  today:s1.getToday(),
		 * 	  now:s1.getNow()},
		 * {
		 * 	  name:"s2.getName()",
		 * 	  id:"s2.getId()",
		 * 	  yesterday:s2.getYesterday(),
		 * 	  today:s2.getToday(),
		 * 	  now:s2.getNow()	
		 * }]
		 */
		
		//采用数组方式回传两只股票数据
		StringBuilder sb = new StringBuilder();
//			  sb.append("[{name:\"").append(s1.getName()).append("\",id:\"").append(s1.getId()).append("\",yesterday:")
//				.append(s1.getYesterday()).append(",today:").append(s1.getToday()).append(",now:").append(s1.getNow())
//				.append("},{name:\"").append(s2.getName()).append("\",id:\"").append(s2.getId()).append("\",yesterday:")
//				.append(s2.getYesterday()).append(",today:").append(s2.getToday()).append(",now:").append(s2.getNow())
//				.append("}]");
		
		//采用对象方式回传两只股票数据
			  sb.append("({")
			  	.append("\"").append(s1.getId()).append("\"").append(":{name:\"").append(s1.getName()).append("\"").append(",id:\"").append(s1.getId())
			  	.append("\",yesterday:").append(s1.getYesterday()).append(",today:").append(s1.getToday()).append(",now:").append(s1.getNow())
			  	.append("},")
			  	.append("\"").append(s2.getId()).append("\"").append(":{name:\"").append(s2.getName()).append("\"").append(",id:\"").append(s2.getId())
			  	.append("\",yesterday:").append(s2.getYesterday()).append(",today:").append(s2.getToday()).append(",now:").append(s2.getNow())
			  	.append("}")
			  	.append("})");
			System.out.println(sb.toString());
			out.println(sb);
		out.flush();
		out.close();
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request,response); 
	}
}

 

 

package com.cn;

public class Stock {
	
	@Override
	public String toString() {
		return this.name+":"+this.now;
	}
	private String id;
	private String name;
	private double now;
	private double yesterday;
	private double today;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getNow() {
		return now;
	}
	public void setNow(double now) {
		this.now = now;
	}
	public double getToday() {
		return today;
	}
	public void setToday(double today) {
		this.today = today;
	}
	public double getYesterday() {
		return yesterday;
	}
	public void setYesterday(double yesterday) {
		this.yesterday = yesterday;
	}
	public Stock( double yesterday, double today,String name,String id ) {
		super();
		this.id = id;
		this.name = name;
		this.yesterday = yesterday;
		this.today = today;
		this.now = today;
	}
}

 

 

 

自动补全
var highlightindex = -1;
$(document).ready(function(){
	var setTimeoutId;
	var autoNodes = $("#AutoComplete");
	var wordInput = $("#word");
	var wordOffset = wordInput.offset();
	//alert(wordOffset.top+"------"+wordOffset.left);
	autoNodes.hide().css("border","1px black solid").css("position","absolute")
		.css("z-index",99).css("top",wordOffset.top+wordInput.height()+2+"px")
		.css("left",wordOffset.left-2+"px").width(wordInput.width()+5);
		
	wordInput.keyup(function(event){
		var myEvent = event || window.event;
		var keyCode = myEvent.keyCode;
		if(keyCode>=65 && keyCode<=90 || keyCode==8 || keyCode==46 ){
			var wordText = wordInput.val();
			if(wordText!=""){
				clearTimeout(setTimeoutId);
				setTimeoutId = setTimeout(function(){
						$.post("/AjaxTrain/AutoComplet?timestampt=" + new Date().getTime(),{word:wordText},function(data){
						var jqueryobj = $(data);
						var wordNodes = jqueryobj.find("word"); 
						autoNodes.html("");
						wordNodes.each(function (i){
							var wordNode = $(this);
							var newDivNode = $("<div>").attr("id",i);
							newDivNode.html(wordNode.text()).appendTo(autoNodes);
							newDivNode.mouseover(function (){
								if(highlightindex!=-1){
									autoNodes.children("div").eq(highlightindex)
										.css("background-color","white");
								}
								highlightindex = $(this).attr("id");
								$(this).css("background-color","red");
							});
							newDivNode.mouseout(function (){
								if(highlightindex!=-1){
									autoNodes.children("div").eq(highlightindex)
										.css("background-color","white");
								}
								highlightindex = $(this).attr("id");
								$(this).css("background-color","red");
							});
							//增加鼠标点击事件
							newDivNode.click(function (){
								var completeText = $(this).text();
								autoNodes.hide();
								highlightindex = -1;
								wordInput.val(completeText);
							});
						});
						if(wordNodes.length>0){
							autoNodes.show();
						}else{
							autoNodes.hide();
							highlightindex = -1;
						}
					},"xml");
				},500);
			}else{
				autoNodes.hide();
				highlightindex = -1;
			}
			//按向上向下键
		}else if(keyCode==38 || keyCode==40){
			if(keyCode == 38){
				var autoNode = autoNodes.children("div");
				if(highlightindex!=-1){
					autoNode.eq(highlightindex).css("background-color","white");
					highlightindex--;
				}else{
					highlightindex = autoNode.length - 1;
				}
				if(highlightindex==-1){
					highlightindex = autoNode.length - 1;
				}
				autoNode.eq(highlightindex).css("background-color","red");
			}
			if(keyCode == 40){
				var autoNode = autoNodes.children("div");
				if(highlightindex!=-1){
					autoNode.eq(highlightindex).css("background-color","white");
				}
				highlightindex++;
				if(highlightindex==autoNode.length){
					highlightindex = 0;
				}
				autoNode.eq(highlightindex).css("background-color","red");
			}
		}else if(keyCode==13){ //回车
			if(highlightindex!=-1){//当提示信息中有高亮的信息时
				var completeText = autoNodes.hide().children("div").eq(highlightindex).text();
				highlightindex = -1;
				wordInput.val(completeText);
				
			}else{//没有高亮的单词时
				alert("--------"+wordInput.val()+"-------");
				autoNodes.hide();
				wordInput.get(0).blur();//让文本框失去焦点
			}
		}
	});
	
	$("input[type='button']").click(function (){
		alert("--------"+wordInput.val()+"-------");
	});
})

 

 

<%@ page language="java" contentType="text/xml;charset=UTF-8"%>
<% 
String word = (String)request.getAttribute("word");
%>
<words>
	<%if("apple".startsWith(word)){%>
		<word>apple</word>
	<%}%>
	<%if("abslutole".startsWith(word)){%>
		<word>abslutole</word>
	<%}%>
	<%if("attrbute".startsWith(word)){%>
		<word>attrbute</word>
	<%}%>
	<%if("artery".startsWith(word)){%>
		<word>artery</word>
	<%}%>
	<%if("automatic".startsWith(word)){%>
		<word>automatic</word>
	<%}%>
	<%if("ascocarp".startsWith(word)){%>
		<word>ascocarp</word>
	<%}%>
	<%if("asclepius".startsWith(word)){%>
		<word>asclepius</word>
	<%}%>
	<%if("ascites".startsWith(word)){%>
		<word>ascites</word>
	<%}%>
	<%if("barberry".startsWith(word)){%>
		<word>barberry</word>
	<%}%>
	<%if("barbotine".startsWith(word)){%>
		<word>barbotine</word>
	<%}%>
	<%if("bisodol".startsWith(word)){%>
		<word>bisodol</word>
	<%}%>
	<%if("bulkhead".startsWith(word)){%>
		<word>bulkhead</word>
	<%}%>
</words>

 

 

package com.cn;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AutoComplet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/xml");
		String word = request.getParameter("word");
		request.setAttribute("word", word);
		request.getRequestDispatcher("wordxml.jsp").forward(request, response);
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics