网站开发进阶(十九)计划任务功能——信息自动弹出

2024-02-16 20:48

本文主要是介绍网站开发进阶(十九)计划任务功能——信息自动弹出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计划任务功能——信息自动弹出

在项目开发中需求如下:用户在购药APP发出购药请求后,匹配送货的药店端在登陆后或处于在线状态时,系统会以弹窗形式进行信息提示。

初步尝试在控制器中使用window.load方法解决,但失败了。估计放在单个页面中不以分离的形式应该会起作用。

//应用window.onload方法

 

window.onload = function(){alert("window.onload");}

 

思路

在经过多次尝试无果后,自己重新整理了一下思路。完成以上功能主要包括2点:1)设置一个标志用户登录的标志;2)设置定时器(有关定时器详见博文“Java实现定时器(Timer)”)。因为只有在管理员登陆之后,通过定时检查是否有新的订单出现。逻辑图如下所示:

编程实现

对于“设置一个标志用户登录的标志”的要求,可以采用在用户登录成功之后再调用的方式替换。可采用如下代码实现:

 

appCallServer($http,"S001",{"uid":$scope.uid,"passwd":MyRsaEncrypt(localStorage.publickey,$scope.passwd)},function(data){
//登录成功
localStorage.uid=$scope.uid;
localStorage.mangname=data.mangname;
localStorage.sessionid=data.sessionid;
$state.go('shop_MedManag');
//window.alert("Test");
appCallServer($http,"1015",{"uid":$scope.uid},function(data){
console.log(data); 	//控制台输出data数据结构,对于调试很管用
if(data.cnt <= 0){
alert("无订单");
return;
}
if(confirm("有新的订单请求,是否查看?")){
//显示订单
$state.go('shop_billManag');
}
},
//fail function
function(data){
alert(data.errtext);
});
});

 

注:confirm用法

如果用户点击确定按钮,则 confirm() 返回 true。如果点击取消按钮,则 confirm() 返回 false。

在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 confirm() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句。

对于“设置定时器”的要求,可采用如下代码实现:

 

<script type="text/javascript">
var btn = document.getElementById("butQuery");
var shq = true;
btn.onclick = function(){
//alert("SHQ");
appCallServer($http,"1015",{"uid":$scope.uid},function(data){
if(data.cnt <= 0){
alert("无订单");
return;
}else{
console.log("data:");
console.log(data);//控制台输出data数据结构,对于调试很管用
if(confirm("有新的订单请求,是否查看啊?")){
//显示订单
$state.go('shop_billManag');
}
}
},
//fail function
function(data){
alert(data.errtext);
});
}
if (shq){
window.setInterval(function(){btn.click()},1*10*1000);
shq = false;
}
</script>

 

注:window.setInterval()函数的用法

javescript网页页脚函数,该函数的意义是让浏览器定时执行一些设定好的函数代码,如:window.setInterval('abc()',3000);即浏览器第隔3称秒都会执行一次abc函数。

现在能够实现的功能是用户登陆之后,若有新的订单,则会进行弹窗提醒。若用户选择查看订单,则会跳转到“订单管理”页面,然后在“订单管理”页面定时刷新。

问题

若用户处于别的管理界面中,即使有新的订单到来,服务端后台会执行查询并返回相应结果。但是管理端前台无法实现弹窗提醒效果。这是一个缺陷。需要寻求一种方法实现弹框可以总是出现在最前端

解决思路

想起了一种新的解决思路:自己创建一个新的弹出框,在每个状态页面执行订单查询操作,若有新的订单需求到来,则进行弹窗提示。

这篇关于网站开发进阶(十九)计划任务功能——信息自动弹出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/715671

相关文章

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

基于SpringBoot实现文件秒传功能

《基于SpringBoot实现文件秒传功能》在开发Web应用时,文件上传是一个常见需求,然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余,此时可以使用文件秒传技术通过识别重复... 目录前言文件秒传原理代码实现1. 创建项目基础结构2. 创建上传存储代码3. 创建Result类4.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用