vue轮询接口并播放音频(全局。解决重复创建问题)
音频标签<!-- 全局音效 --><audio src="" id="eventAudio"></audio>引入音频文件// 引入音频文件import audioMp3 from '../../assets/ding.mp3'实现轮询created() {// 实现轮询if ( sessionStorage.getItem("lastCount") === n
·
音频标签
<!-- 全局音效 -->
<audio src="" id="eventAudio" ></audio>
引入音频文件
// 引入音频文件
import audioMp3 from '../../assets/ding.mp3'
实现轮询
created() {
// 实现轮询
if ( sessionStorage.getItem("lastCount") === null) {
sessionStorage.setItem("lastCount", "0");
}
if ( sessionStorage.getItem("lastCount") === "0") {
window.setInterval(() => {
setTimeout(this.getNewMessage(), 0)
}, 3000)
}
}
接口调用和播放判断
methods: {
// 请求是否有新消息
getNewMessage: function() {
console.log('请求' + this.num++ + '次')
limitOne().then(response => {
const newCount = response.data.data
console.log('新的订单数量: ' + newCount + ' 上个值: ' + sessionStorage.getItem("lastCount"))
if ( sessionStorage.getItem("lastCount") === "0") {
sessionStorage.setItem("lastCount",newCount)
}
if (String(newCount) !== sessionStorage.getItem("lastCount")) {
sessionStorage.setItem("lastCount",newCount)
console.log('通知')
let buttonAudio = document.getElementById('eventAudio');
buttonAudio.setAttribute('src',audioMp3)
buttonAudio.play()
}
})
}
}
监听刷新事件 ,清空计数,重新进入该页面。可再次定时器
// 监听事件
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) //监听页面刷新触发事件
},
// 清空方法
methods(){
beforeunloadHandler(e) { //根据事件进行操作进行操作
console.log(e)
console.log('浏览器刷新')
sessionStorage.setItem("lastCount", "0");
},
},
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)