js 每隔一分钟调用接口 并播放声音

考虑到页面刷新需要记录首次访问页面的时间  不然每次刷新都会重新计时  导致一直不能调用接口 


var interval = 60000; // 轮询间隔为1分钟
var notificationSound = document.getElementById("notificationSound");
var isPlaying = false;
// 消息通知 记录开始时间
var startTime = localStorage.getItem('startTime');

// 如果没有存储开始时间,则将当前时间存储到本地存储中
if (!startTime) {
    startTime = Date.now();
    localStorage.setItem('startTime', startTime);
}

// 每隔60秒调用一次消息接口
//setInterval(callMessageAPI, interval);

// 计算距离上次页面加载开始的时间
var elapsedTime = Date.now() - startTime;

// 然后计算下一次调用消息接口的时间
var nextCallTime = interval - (elapsedTime % interval);

// 在下一次调用消息接口的时间后调用callMessageAPI函数
setTimeout(function() {
    callMessageAPI();
    // 设置定时器,在接下来的每隔60秒后再次调用callMessageAPI函数
    setInterval(callMessageAPI, interval);
}, nextCallTime);


// 定义函数来调用消息接口
function callMessageAPI() {
    // 这里调用你的消息接口
    if($('#topBaseId').val()!==undefined){
        $.post('/talk/unread',{baseId:$('#topBaseId').val()},function (res){
            playNotificationSound();
            $("#unread").removeClass('hide-im').text(parseInt(res));
        })
    }
}

// 播放通知音乐
function playNotificationSound() {
    // 检查是否正在播放音乐
    if (!isPlaying) {
        // 播放音乐
        notificationSound.play();
        isPlaying = true;

        // 在3秒后停止音乐
        setTimeout(function() {
            notificationSound.pause();
            notificationSound.currentTime = 0; // 重置音乐播放位置
            isPlaying = false;
        }, 1000);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值