JS ajax 例子「建议收藏」

JS ajax 例子「建议收藏」用js,jQuery编写ajax的样式,三种写法,例子://用js原生写法functionsendGet(url){xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){ //获取服务器响应 document…

大家好,又见面了,我是你们的朋友全栈君。

用 js , jQuery 编写 ajax 的样式,三种写法,例子:

//用 js 原生写法
function sendGet(url){
    xhr.onreadystatechange =function(){
	    if(xhr.readyState == 4 && xhr.status == 200){
	    //获取服务器响应
	    document.querySelector("#show").innerHTML = xhr.responseText;
	    }
	};
    //发送异步请求
	xhr.open("GET",url,true);
	//发送请求
	xhr.send();
}
//jQuery 写法
function sendGet(url){
	$.get(url,function(data){
	document.querySelector("#show").innerHTML = data;
});	
function sendGet(url){
    //用 ajax 写
    $.ajax(
    {
	    url:url,
	    method:'get',
	    success: function(data){
		    document.querySelector("#show").innerHTML = data;
	    },
	    error:function(err){
		    alert(err);
	    }					
    });
}

整体的代码:将项目放在 TomCat 下的 root 文件夹下,浏览器输入 localhost:8080/history.html 即可运行。

history.html 代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>首页</title>
		<script src="jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">			
			table{
				display: inline-table;
				width: 320px;
				border: 1px solid lightgray;
				border-collapse: collapse;
				vertical-align: top;
				margin-right: 0px;
			}
			td{
				padding: 15px;
				cursor: pointer;
				border: 1px solid lightgray;
				
			}
			tr{
				background: linear-gradient(to right,#f6f6f6,#fff);
			}
			tr:hover{
				background: linear-gradient(to right,#eee,#f6f6f6);
			}
			
			div>div{
				display: inline-block;
				width: 400px;
				height: 300px;
				padding: 10px;
				box-sizing: border-box;
				border: 1px solid lightgray;
				margin-left:0px ;			
			}			
		</style>				
	</head>
	<body>	
		<div style="width: 725px;">
			<table border="1" cellspacing="0" cellpadding="0">
				<tr><td title="java">疯狂java 讲义</td></tr>
				<tr><td title="ee">java ee</td></tr>
				<tr><td title="android"> android</td></tr>
				<tr><td title="html">  html </td></tr>
				<tr><td title="front">front</td></tr>				
			</table>
			<div id="show">				
			</div>
		</div>			
		<script type="text/javascript">		
			var xhr = new XMLHttpRequest();
			window.onload = function(){
				//页面加载时,替换 history 的状态
				history.replaceState(null,"首页","history.html?id=java");
			}
			//获取页面上所有td元素
			var tdList = document.querySelectorAll("td");
			//遍历所有的 td 元素, 为他们的 onclick 时间绑定处理函数
			for(var i =0;i< tdList.length;i++){
				tdList[i].onclick = function(src){
					//以当前单元格的 title为参数发送异步请求
					sendGet("books.jsp?id=" + src.target.title);
					//想 history 压入状态
					history.pushState({"cellTitle":src.target.title},
						"首页","history.html?id="+ src.target.title);
				//取消所有td元素的背景色
				var tdList = document.querySelectorAll("td");
				for(var i=0;i <tdList.length; i++){
					tdList[i].style = undefined;
				}
				//为当前单击的单元格设置背景色
				src.target.style.background = 
						"linear-gradient(to right,#ddd, #eee)";
				}
			}
			/*
			//用 js 原生写法
			function sendGet(url){
				xhr.onreadystatechange =function(){
					if(xhr.readyState == 4 && xhr.status == 200){
						//获取服务器响应
						document.querySelector("#show").innerHTML = xhr.responseText;
					}
				};
				
				//发送异步请求
				xhr.open("GET",url,true);
				//发送请求
				xhr.send();
			}
			*/
			
			//jQuery 写法
			function sendGet(url){
				//$.get(url,function(data){
				//	document.querySelector("#show").innerHTML = data;
				//});	
				
				//用 ajax 写
				$.ajax(
				{
					url:url,
					method:'get',
					success: function(data){
						document.querySelector("#show").innerHTML = data;
					},
					error:function(err){
						alert(err);
					}					
				});
			}
			
			//为窗口的 popstate 事件绑定监听器
			window.addEventListener("popstate",function(){
				//获取history 的状态数据
				var curTitle = history.state["cellTitle"];
				var tdList = document.querySelectorAll("td");
				//取消所有单元格的背景色,只设置被选中的单元格的背景色
				for(var i = 0;i <tdList.length ; i++){
					if(tdList[i].title == curTitle){
					tdList[i].style.background ="linear-gradient(to right,#ddd,#eee)";
					}
					else{
						tdList[i].style = undefined;
					}
				}	
					//通过窗口地址栏获取请求参数
					queryStr = window.location.href.split("?")[1];
					//发送异步请求	
					sendGet("books.jsp?"+ queryStr);
			});			
		</script>					
	</body>
</html>

book.jsp 代码:

<%@page pageEncoding="UTF-8"%>
<%
	String id = request.getParameter("id");
	String result =null;
	if (id.equals("java")) {
		result = "java 书,111111111111111111111111";
	}else if (id.equals("ee")){
		result = "java ee书,2222222222222222222222";
	}else if (id.equals("android")){
		result = "android 书,33333333333333333333333";
	}else if (id.equals("html")){
			result = "html 书,4444444444444444444444444444";
	}else if (id.equals("front")){
			result = "front 书,55555555555555555";    
	}
	out.println(result);	
%>

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158768.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 大学学姐给学弟学妹们的寄语_怎么去大厂工作

    大学学姐给学弟学妹们的寄语_怎么去大厂工作很多小伙伴问我进大厂到底需要怎样的技术能力,经过几天的思考和总结,终于梳理出一份相对比较完整的技能清单,太顶了,建议收藏!!

  • 阿姨想让13岁的儿子学Java编程,我拒绝了

    阿姨想让13岁的儿子学Java编程,我拒绝了大家好,我是锋哥;先爆丑照,为了你们有勇气继续阅读下去;前一段时间,有个阿姨找我学java,我懵逼了。我以为阿姨学着玩玩的,我就同意了。她说过段时间找我报名;后来,阿姨又找我阿姨想让她13岁的儿子跟我学编程,我想了下13岁应该六年级或者初一,不正是学习科学文化基础知识的时候吗。我这人有原则,有底线,也不想坑人,孩子太小,应用编程真不适合,也会耗费大量的时间和精力,耽误学业。孩子学应用编程前,应该至少有初中毕业文化,计算机简单基础,英语基础,应用软件基础,如果可以,还需要了解计算机组成原

  • C语言图书管理系统设计报告「建议收藏」

    C语言图书管理系统设计报告「建议收藏」源代码:https://blog.csdn.net/k_young1997/article/details/73480766XXXX大学C语言课程设计报告题目图书管理系统设计专业班级XXXX级计算机科学与技术本科X班组别计科第…

    2022年10月16日
  • CFileDialog的使用方法简单介绍

    CFileDialog的使用方法简单介绍

    2021年12月10日
  • 论文之前能在万方检索到,现在搜不到了_resnet论文

    论文之前能在万方检索到,现在搜不到了_resnet论文转自:https://blog.csdn.net/xuanwu_yan/article/details/75042456方法我们回顾一下ResNet,大意就是本层的激活值与本层的输入,作为本层的输出。换一种方式理解,第ll层的激活值不仅仅影响l+1l+1层,而且还影响l+2l+2层。那么由此及广,我们可不可以让第l层的激活值一直影响到第l+kl+k层呢?这样就有了本文的基本思想,稠密就是从这里产生…

  • f1值准确率召回率_nt值准确率高吗

    f1值准确率召回率_nt值准确率高吗##1、混淆矩阵混淆矩阵中T、F、P、N的含义:T:真,F:假,P:阳性,N:阴性然后组合:TP:真阳性TN:真阴性FP:假阳性FN:假阴性##2、精确率(准确率):你认为对的中,有

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号