Ajax的简介与实现

Ajax简介

   说明:当你知道啥是ajax请看下面的“技术代码实现”,当你不知道啥是ajax 请忽略此条信息
   Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面(百度百科)。
   简单来说:就是在加载网页的同时,通过ajax访问服务器来同时加载别的内容而实现了异步。
   何为同步?两个人打电话就是同步,因为再有电话进来就是对方正在通话中;传统网页进行客户端和服务端进行数据交互的时候,要么得提交表单超链接什么的,或者进行页面刷新重新获取(这里会忽略多次刷新用之前界面的情况)
   何为异步?两个人发短信,别人还能给你发短信。本文中就是在服务器与客户端进行通信的时候,客户端继续和服务器端交流加载数据,这样可以获取到实时信息,进行qq邮箱获取新邮箱,在不刷新系统情况下可以知道有新邮箱的到来或许是用到了Ajax(没具体了解过),但是绝对可以通过ajax实现。
   案例:事件驱动架构进行业务场景比如秒杀系统场景搭建,会发现事件驱动架构可以支持一致性,但是无法保证有效性。这时候Ajax异步加载机制可以实现有效性。

开发环境的介绍

##本文档开发环境介绍
1.jdk:1.8.0
2.编译器:Eclipse
3.服务器:Tomcat8.0
4.所需的jar包(https://download.csdn.net/download/weixin_44929998/11123500
lib目录下需要导入的jar包

技术代码实现

 5.使用的技术栈:servlet+html+js

我的Eclipse项目结构(请忽略掉login.jsp 那个我懒得删了的)

项目目录
7.User.java
//此处为javabean 本博客使用的json进行ajax数据传输的载体

package cn.hnist.javabean;

public class User {
	private String username;
	private String password;
	private String age;
	
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

8.servlet
//此处用前端传递来的数据模拟获取数据库的数据,因为只是简单实现便懒得写一个数据库弄这个,当然最重要是为了你们多了解一下后面ajax给服务器传递数据怎么传(当时确实想偷懒,如果写一个常量数据又显得太low)

 response.setContentType("application/text; charset=utf-8");
		//初始化User对象
		User user=new User();
		
		//获取前端的用户名和密码
		user.setUsername(request.getParameter("username"));//获取ajax传递的用户名
		user.setPassword(request.getParameter("password"));//获取ajax传递来的密码
		
		JSONObject jsonObject=JSONObject.fromObject(user);//将实例化且已赋值的user打包称为json数据
		
		//将数据传递给ajax此处代码跟传递给Android很相似有木有,我写Android时用的是gson数据传递
		PrintWriter out=response.getWriter();
		out.println(jsonObject);

9.此时便是ajax的重点操作代码了show.html(showTime)

#9.1 数据显示 设置一个可以显示代码的位置 ↓

    <p id="message"></p>
	<p id="username"></p>.
	<p id="password"></p>

#9.2 ajax关键代码详解↓

/*
  此处用的是jquery的框架搭建的代码,所以需要在前面引入jquery,具体引用可以见jqury官网,百度一下
  懒得去找官网的话 可以见我下面全部的show.html代码查阅一下
  如果这里有格式问题,别怪我,但是知道意思就好了
  js允许出现双引号和单引号 但是这里统一用单引号 而且如果没引入jquery也是有问题的
*/
$.ajax({
			  url:'LoginServlet',   //这里是servlet的位置,当然也可以是别的框架 ssh xxx.action ssm.do  当然我没试过
			  type:'POST',  		//传输方式 和form表单的method一样
			  data:{				//给servlet传递的数据  还有一个dataType  具体查看一下别人的啦 我没写一般也可以进行json数据传递
				  'username':'username',
				  'password':'password'
			  },
			  success:function(jsonObject){    //当数据传输成功的时候,这里的jsonObject名要注意到位
				  console.log('zz')
				  
				  var zz=strToJson(jsonObject);  //这里有点看不懂对不对,因为这个strToJson是我百度copy的代码 用于转换成js识别的eval就可以直接读取服务器端传来的json数据了 代码我贴下面
				  document.getElementById('username').innerHTML=zz.username;
			  },
			  error:function(){
				  console.log('zz')
			  }
			  
		  	
			  
		  });

#9.3 strToJson代码↓

function strToJson(str){ 
		var json = eval('(' + str + ')'); 
		return json; 
} 

#9.4触发条件↓

本文用的是js函数 setTimeout(copy/function(),time);

#9.5完整show.html代码↓

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 引入jqury-->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> 
<!-- 引入jqury-->
</head>
<body>
	<p id="message"></p>
	<p id="username"></p>.
	<p id="password"></p>
</body>
	<script type="text/javascript" >
	
	function strToJson(str){ 
		var json = eval('(' + str + ')'); 
		return json; 
		} 
		
	
	setTimeout(function(){
		console.log("zz");
		$.ajax({
			  url:'LoginServlet',
			  type:'POST',
			  data:{
				  'username':'username',
				  'password':'password'
			  },
			  success:function(jsonObject){
				  console.log('zz')
				  
				  var zz=strToJson(jsonObject);
				  document.getElementById('username').innerHTML=zz.username;
			  },
			  error:function(){
				  console.log('zz')
			  }
			  
		  	
			  
		  });
    },1);
	
	  
	
	</script>
</html>

10.实现结果:当然这个界面不是那么好看
实现结果

最后说明一下:

本项目系统是我通过百度翻看各位大佬学习后的心得,我只能算小编,原著是各位互联网上面大佬;
如果觉得可以的话 希望大家多多关注支持我,我将会和你们一同成长。
然后如果上述文章有任何不妥的地方,麻烦斧正一下,我在评论区恭候各路大佬,希望多多斧正
这是我在CSDN写的第一篇文章。2019.04.17
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值