1.异步的无序
根据后端返回的数据动态生成元素,然后给元素绑定事件
问题:数据还没请求回来,执行绑定事件函数的时候报错,因为此时还没有元素
解决:用 setTimeout 延迟执行绑定事件函数
绝大多数异步问题都可以无脑用 setTimeout 解决,缺点在于如果用多了,容易搞不清执行先后顺序,引发新的问题
2.页面关闭事件监听并不是完全有效
自己的小 demo 在实现在线功能的时候,想在 页面关闭事件 onbeforeunload·
中调接口,从在线人数数组中删掉关闭页面的用户
问题:监听不稳定,有时候能发出接口,有时候不能,按网上说的把 ajax 改成同步也还是不行
解决:使用 心跳包,建立长连接,每隔一段时间发一次数据确认还在线
网友评论