js定时刷新局部页面及动态加载页面后事件处理

本文介绍了在项目中实现类似公交软件的实时状态更新功能时遇到的问题和解决方案。通过避免全页刷新,采用定时器更新局部DOM,但这种方式可能导致动态加载后事件绑定失效。解决方法是使用事件委托,如`$(document).on('click','.bookflag',function(){...})`。此外,还提到在苹果手机上事件不起作用的问题,通过设置`.bookflag`元素的`cursor: pointer`样式得以解决。" 102522769,7402462,SpringBoot整合Elasticsearch:Java API聚合查询详解,"['springboot', 'Elasticsearch', '聚合查询']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做项目的过程中用到了定时刷新页面元素,就类似公交车软件一样,定时读取实时状态,期间遇到了一些奇葩的问题,在此列出供需要的朋友参考,同时也作为本阶段工作的一个小结,具体问题如下:

1. 定时刷新页面

该部分处理有多种方式:

典型的处理有整个页面刷新,

方法一: <meta http-equiv="refresh" content="5">  

方法二:定时器刷新:

setInterval('myrefresh()',10000);  //指定10s刷新一次

function myrefresh() {

window.location.reload();

}

在本项目中由于刷新整个页面体验非常的不好,所以选择方法二 只刷新页面中的局部DOM,这将导致一个问题就是动态加载页面后虽然表面上看起来与未加载前一样,但是实质上却有很大的区别,最明显的体验是绑定的click事件在定时刷新后不起作用了,这是因为事件无法绑定在新载入的DOM上,此时就需要进行事件委托处理,可使用如下方式解决:

$('.bookflag').click(function() { ... }); //正常页面处理方式

$(document).on('click','.bookflag',function(){... }); //动态加载DOM后使用此方式

通过使用以上方式,上述问题可以完美得到解决;

2. 苹果手机不起作用

经过第一步的修改在电脑上很顺畅的测试完毕,此时才发现一个苦逼的事情已然发生了,系统在安卓手机和电脑上都可以响应事件,但是在苹果手机设备上缺丝毫不起作用,于是乎翻遍各个角落终于求得一个解决方式,需要将绑定事件的元素进行一下css设置,具体为什么要进行这样的设置本人还暂不清楚:

.bookflag {
      cursor:pointer
    }


以上即为本次功能开发遇到的具体问题,希望能帮助到你们,共同进步,不喜勿喷!







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值