PHP应用通知弹窗显示时长过短,修改setInterval参数无效如何解决
你修改setInterval参数无效的核心原因是,该参数控制的是服务端拉取新通知的轮询间隔,和弹窗本身的显示时长没有关联。
可按以下方案调整:
- 优先检查
/includes/fetch-notifications.php返回的通知模板代码,大部分这类教程的自动关闭逻辑都写在后端返回的HTML内嵌JS中,找到类似setTimeout(function(){$('.alert').fadeOut()}, 3000)的代码,修改后面对应的毫秒值即可,比如改为10000就代表通知显示10秒后再自动关闭。 - 如果使用的是Bootstrap Toast组件实现弹窗,找到Toast初始化的代码,修改
delay参数即可:
// 原初始化代码一般类似这样 $('.toast').toast({ delay: 10000 // 把默认的5000改为你需要的时长,单位为毫秒 })
- 你也可以直接在现有AJAX请求的success回调中新增自定义显示时长逻辑,覆盖原有默认配置,修改后的代码参考:
<script> $(document).ready(function(){ // 该参数为拉取新通知的轮询间隔,无调整需求可保留原值 setInterval(function(){ load_last_notification(); }, 5000); function load_last_notification() { $.ajax({ url:"/includes/fetch-notifications.php", method:"POST", success:function(data) { $('.content').html(data); // 新增自定义通知显示时长逻辑,选择器需和你实际的弹窗类名匹配 setTimeout(function() { $('.content .alert').fadeOut(); }, 10000); // 此处数值为弹窗显示时长,单位为毫秒 } }) } }); </script>
如果需要通知永久显示不自动关闭,删除对应setTimeout自动关闭逻辑即可。
内容的提问来源于stack exchange,提问作者gee-ell
相关产品推荐
相关产品推荐

