开发日常小结(14):项目小功能:实现倒计时功能(js实现),基于java数据传递

用js做一个倒计时(时分秒),js中倒计时器怎么实现 1.核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时 ,但是不能拿着时分秒相减,比如 02 分减去22分,结果会是负数的,所以要转换为毫秒;2.用时间戳来做,用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数;3.把剩余时间总的毫秒数转换为天、时、分、秒 (时间戳转换为时分秒)。利用JavaScript函数做一个简单的倒计时。 阅读详情

2018年5月13日17:26:50

【1】前言

运营部姐姐发来一个留言:加个倒计时吧,这样看着舒服。然后,我就开始重新看模块的相关代码了(了解数据流的传递过程,是非常重要的)。经过努力,还是解决了这个问题,如下图所示:



【2】原理

开发必须注重效率,因此要明确需求:

1)假如查询的玩家没有封号,那就不需要倒计时了;

2)假如查询的玩家被封号了,那就要获取封禁开始时间、封禁所需时间和当前时间了,然后就是js的特效展示;

3)做了倒计时功能还不算结束,因为还要考虑到如下3个问题:

    3.1 倒计时正常结束时,需要自动解封功能的;

    3.2 倒计时还没结束,运营部姐姐点击了解封(强制结束禁封状态),那就需要对倒计时做些动作了;

    3.3 倒计时有了,假如新开了一个标签页,然后对玩家操作,会不会有并发风险??


【3】后端的数据获取(当前倒计时的初值)

忽略掉数据库和企业框架,下面是一段java代码:

	//玩家的是否被封禁的信息
	BlackWhiteListInfo blackWhiteListInfo = blackWhiteListData.getBlackRoleInfo(roleId);
	if(null != blackWhiteListInfo && blackWhiteListInfo.getIsBlockNow()){
		json.element("isBlockNow", true);
		//int leftHours = (int)(blackWhiteListInfo.getExpireTime() - (System.currentTimeMillis() - blackWhiteListInfo.getBlockTime().getTime())/60/60/1000);
		long leftSeconds = (long)(blackWhiteListInfo.getExpireTime()*3600 - (System.currentTimeMillis() - blackWhiteListInfo.getBlockTime().getTime())/1000);
		json.element("leftAccountReleaseHour", leftSeconds/3600);
		json.element("leftAccountReleaseMinute", (leftSeconds%3600)/60);
		json.element("leftAccountReleaseSecond", (leftSeconds%3600)%60);
		json.element("expireTime", blackWhiteListInfo.getExpireTime());
	}else{
		json.element("isBlockNow", false);
		json.element("leftAccountReleaseTime", 0);
		json.element("expireTime", -1);
	}

这里使用了json封装好 leftAccountReleaseHour、leftAccountReleaseMinute、leftAccountReleaseSecond;然后通过request请求,发送给前端页面,这里不做过多讲解;


【4】js实现页面倒计时

大部分的jsp页面获取值,都是用json,这里也不例外;下面是倒计时的相关代码:

1. 

				<div id="unBlockAccount" class="form-horizontal" id="unBlockAccount">
					<label class="text text-center center-block" id="accountDesc">
							距离自动解封时间还有4小时
					</label>
					<button id="unBlockAccountBtn" type="submit" class="btn btn-primary center-block">解封</button>
				</div>

2.

	<script type="text/javascript">
		//开启全局定时器
		var hour = -1;//倒计时
		var minute = -1;
		var second = -1; 
		var state = -1; //0:禁封状态;1:解禁状态或永久禁封
		var intDiff = parseInt(60);
		var timer = window.setInterval(function(){
			if(state == 0){
			    if(intDiff > 0){ //禁封状态
			    	if(second == 0){
			    		if(minute > 0){
				    		second = 60;
				    		minute --;
			    		}else if(minute == 0){
			    			if(hour > 0){
					    		second = 60;
			    				minute = 59;
				    			hour --;
				    		}else if(hour == 0){
				    			//alert("自动解封!!");
		    					state = 1;
			    				$("#unBlockAccountBtn").click();
			    				$("#search-btn").click();
			    			}
			    		}
			    	}
			    	second--;
				    //console.log("test "+hour+":"+minute+":"+second+" state: "+state);
					$("#accountDesc").html("距离自动解封时间还有"+hour+" 小时 "+minute+" 分钟 "+second+" 秒 ");
			    }else if(intDiff == 0){
			    	intDiff = 60;
			    }
			    intDiff--;	
			}
	    }, 1000);
</script>

3.

				$("#forbiddenCount").html("历史被封次数: "+data.forbiddenCount+"次");
	  	 		//判断玩家是已封号还是未被封号
				if(data.isBlockNow){
					//已经被封号
					$("#blockAccount").hide();
					$("#unBlockAccount").show();
					if(data.expireTime == -1){
						$("#accountDesc").html("此账号永久封号,可手动解封");
					}else{
						hour  = data.leftAccountReleaseHour;
						minute = data.leftAccountReleaseMinute;
						second = data.leftAccountReleaseSecond;  
						state = 0;
					}
				}else{
					//未被封号
					$("#blockAccount").show();
					$("#unBlockAccount").hide();
				} 
					

解释:

1、是页面布局控件;

2、倒计时使用的是:window.setInterval(),赋值给一个全局变量;

3、每当刷新页面时,获取json的值,赋值给全局变量(hour、minute和second),并设置状态位;这样每1000ms循环执行一次操作;然后实现倒计时的效果。

4、如果有解封,那么对state变量设置一下即可;定时器是不断地在跑的;


参考:《http://www.jq22.com/jquery-info327》


基于SSM框架的毕业设计管理系统的设计与实现(附资源下载) 我的毕业设计就叫毕业设计管理系统的设计与实现,哈哈 目录 1.摘要 2.需求分析 3.数据库设计 4.功能模块的设计与实现 5.项目截图 6.项目源码 1.摘要 毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的... 阅读详情

相关推荐

即梦文生视频逆向接口部署使用

有的小伙伴不知道这个地址如何填写,你可以理解是步骤3上提供的 服务器或者本地电脑IP 地址(不要写 http://127.0.0.1 或者http://localhsot ) 是 (192.168.XXX.XXX 参考)

weixin_44245188的博客 3185

JavaScript实现倒计时功能

本文主要介绍JavaScript中封装时间函数和如何倒计时功能,没有拐弯抹角,拿走即用。

modao的博客 6517

Win10系统蓝屏错误BAD SYSTEM CONFIG INFO的解决方案

BAD SYSTEM CONFIG INFO错误是Win10系统中较为常见的一种蓝屏错误,通常与系统配置文件损坏或丢失有关。本文介绍了三种有效的解决方法:使用系统修复高级选项修复、通过PE修复文件和重装新系统。用户可以根据实际情况选择合适的方法进行操作。同时,建议用户定期备份系统重要文件和数据,以防止类似问题的发生。在遇到问题时,保持冷静并耐心操作,通常可以顺利解决问题。

mmoo_python的博客 7723

用javascript编写倒计时

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style type="text/css"> .Mainshow{ width: 1000px; margin: 0 200px; height: 50.

m0_58451019的博客 1143

基于强化学习的工业SCR脱硝系统控制算法设计与实现

本文提出了一种基于强化学习的工业SCR脱硝系统智能控制方法。针对SCR系统存在的非线性、大滞后和多变量耦合等控制难点,研究采用混合建模方法构建了精度在5%以内的系统模型,并设计了专门的强化学习环境。该方法通过定义合理的动作空间和状态空间,结合物理约束设计损失函数,利用深度强化学习算法优化氨喷射控制策略。相比传统PID控制,该智能控制器能更好地适应烟气参数波动,实现NOx排放的稳定控制,为工业环保设施提供了更优的自动化解决方案。

huanghm88的专栏 1456

unity 腾讯地图sdk移动和缩放代码

unity 腾讯地图sdk 实现移动端 缩放 和 移动

。。。。。 1283

Java时间类型以及前端和数据端的传输

Date虽然sql也有一个Date类,但其实相对而言,用的更多的是util包下的Date,所以也就以util包下的Date为例构造方法Date():获取当前系统的的时间Date(Long millisec):获取传入的时间戳(毫秒数)的时间(时间戳是 1970 年 1 月 1 日(00:00:00 )至当前时间的总秒数;)对于Date有几个常用的方法long getTime( ):返回自1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数.

weixin_44691025的博客 5324

手把手教你学 GPU KMD”相关内容的专栏简介与目录

本专栏系统讲解GPU内核模式驱动(KMD)开发技术,涵盖四大核心模块:1)GPU驱动架构基础,解析UMD/KMD协同机制;2)KMD核心功能,包括内存管理、命令提交、中断处理等;3)底层硬件交互,详解PCIe/DMA传输、多级页表等;4)实战进阶,结合Linux DRM框架代码分析,探讨GPU虚拟化与性能优化。面向具备OS和C语言基础的开发者,提供从理论到实践的完整学习路径,帮助深入理解图形/计算驱动栈的底层实现原理。

amy_mhd的博客 154

js实现倒计时效果

既然是倒计时,肯定是要涉及到时间日期的操作了。js 里可以用 new Date() 来创建各种格式的时间日期。还涉及到定时器的使用。计算出当前时间和目标时间的时间差,还要对剩余时间做下处理,得出时、分、秒,然后通过重复调用,每隔 1 秒刷新一次就实现了。

徐三岁的博客 1408

使用GitLab限制开发者使用CI/CD的权限,三种方案

使用三种方案来限制开发人员的CI/CD权限。

知无涯 5096

AI上推荐 之 隐语义模型(LFM)和矩阵分解(MF)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 1万+

java简易计时器的实验总结,开发日常小结(14):项目小功能:实现倒计时功能(js实现),基于java数据传递...

2018年5月13日17:26:50【1】前言运营部姐姐发来一个留言:加个倒计时吧,这样看着舒服。然后,我就开始重新看模块的相关代码了(了解数据流的传递过程,是非常重要的)。经过努力,还是解决了这个问题,如下图所示: 【2】原理开发必须注重效率,因此要明确需求:1)假如查询的玩家没有封号,那就不需要倒计时了;2)假如查询的玩家被封号了,那就要获取封禁开始时间、封禁所需时间和当前时间了,然后就是js...

weixin_31009269的博客 441

2023 ICRA《Visual Language Maps for Robot Navigation》阅读笔记

视觉语言导航可以使用预先训练的现有的视觉语言模型来将图像与对象目标的自然语言描述相匹配,但它与绘制环境的过程仍然脱节,缺乏经典几何地图的空间精度。为了解决这个问题,我们提出了VLMaps,这是一种空间地图表示,它将预训练的视觉语言特征与物理世界的3D重建直接融合在一起。VLMaps可以使用标准探索方法从机器人上的视频馈送中自主构建,并在没有额外标记数据的情况下实现地图的自然语言索引。具体来说,当与大型语言模型(LLM)相结合时,VLMaps可以用于。

qq_44100524的博客 1990

javaScript 中的一些日常用法总结

从今天开始把开发中常用到的js语法 一一记录下来 方便以后复习回顾用; 1:对字符串进行替换replace 以及replaceAll replace : var begin_date =begin.replace("-",""); replaceAll: 1 var begin_date =begin.replaceAll("-",""); 总结repl...

weixin_34242509的博客 128

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【课程设计】基于Java的学生请销假审批管理系统的设计与实现毕业设计源码130939

系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、用户管理、公告通知、请假申请、请假审批等功能 用户进入系统可以进行首页、通知公告、请假审批、请假申请等功能操作。...

专业程序开发源的博客 5200

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ssm企业办公平台6wwzi(程序+源码+数据库+调试部署+开发环境)

随着信息技术的飞速发展,企业办公方式正逐步向数字化、智能化转型。传统办公模式存在沟通不畅、信息孤岛、流程繁琐等问题,影响了工作效率和团队协作能力。因此,构建一套集成化、智能化的企业办公平台,成为提升企业管理水平和运营效率的关键。

Kittyxia001的博客 1129

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

(附源码)基于Java SpringBoot的电影院管理系统设计与实现-毕业设计 课程设计 011633

电影管理: (1)电影列表:展示所有电影,形成的列表样式。 (2)电影搜索:通过电影名、电影类目来搜索电影。 (3)图片上传:给电影添加电影图片。 (4)增加电影; (5)更新电影:更新电影的,如电影名称、电影分类、电影海报、导演、演员、上映日期、放映场次、放映时间、放映厅、影院名称、影院地址、价格、座位总数等。 (6)电影上下架; 资讯数据管理: (1)图片上传:给资讯添加资讯图片。 (2)增加资讯; (3)更新资讯:更新资讯的,如资讯标题、内容等。 (4)资讯数据删除销毁; 选座预订记录管理: ……

Q_3461074420的博客 1万+

JSP银行OA系统2xkom程序+源码+数据库+调试部署+开发环境

在金融科技迅猛发展、银行业务日益复杂的当下,传统办公模式效率低、信息传递不及时等问题凸显。银行OA系统作为现代化办公的关键工具,能有效整合银行内部资源,打破部门壁垒,实现信息的快速流通与共享。通过自动化流程处理,可大幅减少人工操作,降低出错率,提升银行整体运营效率与决策科学性,增强市场竞争力,对银行的数字化转型与可持续发展意义重大。

Kittyxia001的博客 1009

【课程设计】(附源码)Springboot+mysql+基于VUE框架的商城综合项目设计与实现 毕业设计111612

本商城综合项目采用的数据库是Mysql,使用java技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

Biye_Design的博客 4735

Java项目:149 基于SSM的毕业设计管理系统

毕业设计是本科教育的最后一个环节,整个过程包括课题拟定与审核、师生双选、开题报告、文档审核、中期检查、毕业答辩等多个环节,是一项系统而复杂的工作。开发一个适合本校的毕业设计管理系统,不仅能够极大地减少教务管理人员的工作量,还能较大地提高学生和教师的效率。本系统采用B/S模式,主要开发工具为Eclipse/Idea(Oxygen.1a Release),用到的编程语言有Java、JavaScript和JSP,数据库采用MySQL 5.7,服务器则用的Apache Tomcat 9.0。

舒克日记的博客 1019

基于nodejs+vue基于Java的信公OA办公系统[开题+源码+程序+论文]计算机毕业设计

研究基于Java的信公OA办公系统,对于推动企业的数字化转型具有重要意义。该系统能够整合企业内部的各类资源,实现信息的快速传递和共享,减少人工操作的繁琐和错误。同时,通过系统化管理,可以规范企业的业务流程,提高工作效率。此外,该系统还具备较高的安全性和稳定性,能够保障企业数据的安全性和完整性。因此,研究和开发这一系统不仅有助于提升企业的竞争力,还能为企业的可持续发展奠定坚实的基础。

星海学长_毕设 662

JavaScript数字格式化:保留两位小数的精确实现与避坑指南

数字格式化是前端开发中的基础技术,尤其在金融、电商等业务场景中,精确控制小数位数至关重要。其核心原理涉及JavaScript的浮点数表示(IEEE 754标准)和舍入规则。理解并正确处理精度问题,能有效避免UI显示异常和金额计算错误等风险,提升应用的健壮性。本文聚焦于保留两位小数这一高频需求,深入剖析了`toFixed`方法的银行家舍入法陷阱、浮点数精度误差等常见问题,并提供了基于`Math.round`配合乘除法、字符串解析以及`Number.EPSILON`校正等工程实践方案,帮助开发者在不同业务场景下

weixin_30847939的博客 431

基于ssm+vue日常分享网络平台【开题+程序+论文】-计算机毕业设计

其次,重点开发日常分享功能,支持用户发布文字、图片、视频等多种类型的分享内容,并通过标签、分类等方式实现内容的组织与管理。因此,构建一个专注于日常分享的网络平台,旨在为用户提供一个更加自由、便捷、富有情感共鸣的空间,成为当前互联网领域的热点话题。该平台将融合用户日常生活的点滴,通过多样化的分享类型,促进用户间的情感交流与信息互通,满足现代人对社交的多元化需求。其次,通过精准定位用户需求,设计并优化平台功能,如用户画像构建、智能推荐系统等,能够有效提升用户粘性,促进社区文化的形成。

永恒毕设程序 861

【课程设计】(附源码)springboot水环境检测系统的设计与实现 毕业设计041446

系统主要针对水环境监测业务开展,涉及监测点管理、水环境监测数据管理、项目信息管理等方面。本设计主要实现集人性化、高效率、便捷等优点。系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合前台技术完成系统的开发。

Biye_Design的博客 4264

JAVA-WEB

文章目录1. JAVA-WEB介绍2. HTML3. CSS样式4. JavaScript5. Vue.js6. xml解析7. Tomcat服务器8. http协议9. Servlet10. Thymeleaf11. Cookie与Session12. Ajax13. Filter14. 监听器15. WEB组件注解用法16. 事务控制 1. JAVA-WEB介绍 2. HTML 3. CSS样式 4. JavaScript 5. Vue.js 6. xml解析 7. Tomcat服务器 8. http协

weixin_58005665的博客 1060

java+vue计算机毕设小学学生家校联系系统的设计与实现【源码+开题+论文】

随着信息技术的飞速发展,教育领域正经历着前所未有的变革。小学作为学生教育生涯的起点,其教育质量直接关系到学生的未来发展。然而,在传统家校沟通模式中,信息的传递往往受限于时间和空间的限制,导致家校之间的合作不够紧密,家长难以及时了解学生在校情况,教师也难以全面掌握学生的家庭环境和学习习惯。因此,开发一款高效、便捷的小学学生家校联系系统显得尤为重要。该系统旨在打破传统沟通壁垒,通过数字化手段实现家校信息的无缝对接,促进家校共育,共同为学生的健康成长和学习进步创造良好的环境。

sheji310的博客 783
上一篇: java基础(44):数组转列表 -- Arrays.asList()的使用
下一篇: 开发日常小结(10):项目如何使用图片服务器API?
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值