如何在Wix/jQuery环境下持续运行If查询监听登录状态动态更新页面内容
实现思路
不用做循环轮询(会额外消耗页面性能),Wix 自带的wix-usersAPI 已经提供了登录、登出事件的监听方法,状态变更时会自动触发回调,完全可以满足实时更新UI的需求,且不需要用到jQuery。
修改后完整代码
import wixUsers from 'wix-users'; // 把UI更新逻辑抽成公共函数,避免重复编写冗余代码 function updateUiByLoginStatus() { if (wixUsers.currentUser.loggedIn) { $w('#html1').show(); $w('#button17').show(); $w('#box9').hide(); $w('#button29').show(); } else { $w('#html1').hide(); $w('#button17').show(); $w('#box9').show(); $w('#button29').hide(); } } $w.onReady( () => { // 页面加载完成后先执行一次,保证初始状态显示正确 updateUiByLoginStatus(); // 监听用户登录事件,登录完成后自动更新UI wixUsers.onLogin( () => { updateUiByLoginStatus(); }); // 可选:监听用户登出事件,登出后自动同步UI状态 wixUsers.onLogout( () => { updateUiByLoginStatus(); }); });
逻辑说明
- 抽离公共UI更新函数后,所有状态变更的场景都复用同一段逻辑,后续调整交互规则只需要修改这一处即可
- 登录/登出事件由Wix原生API触发,响应延迟极低,不需要手动刷新页面
- 无额外轮询开销,不会影响页面加载和运行性能
内容的提问来源于stack exchange,提问作者tony_dronec
相关产品推荐
相关产品推荐

