浏览器刷新几下, 控制台 显示不同内容

本文介绍了如何使用JavaScript通过getElementById获取页面上的特定元素,并展示了console.log和console.dir方法来查看其类型和详细属性。

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

<body>
    <div>hello</div>
    <div id="box">world</div>
    <script>
        var box = document.getElementById('box');
        console.log(box);
        console.log(typeof(box));
    </script>
</body>

在这里插入图片描述
刷新几次后
在这里插入图片描述
展开
在这里插入图片描述

console.dir(box);
直接打印 对象, 可以方便地 看到 属性 和 方法

参考链接
https://www.bilibili.com/video/BV1tW41187vH?p=3&t=672.8

### 解决方案 为了实现在修改控制台中的 token 后能够自动刷新页面而不重载登录状态,可以采用监听存储事件的方式并结合 JWT 认证机制来处理。当检测到 token 发生变化时,通过调用特定的方法更新应用内的认证状态。 #### 使用 StorageEvent 监听 Token 变化 现代浏览器支持 `storage` 事件,在同一个域名下的不同窗口或标签页之间共享 localStorage 或 sessionStorage 数据发生变化时会触发此事件。利用这一特性可以在一个地方更改 token 后通知其他打开的页面实例[^2]。 ```javascript window.addEventListener('storage', function (e) { if (e.key === 'authToken') { // 假设 token 存储键名为 authToken const newToken = e.newValue; // 更新本地缓存或其他需要的地方 updateLocalState(newToken); // 如果有专门用于管理身份验证的服务,则告知其重新获取用户信息 authService.refreshUserDetails(); } }); ``` #### 刷新界面而非整个页面 对于单页应用程序(SPA),通常不需要完全刷新页面即可反映最新的数据变动。可以通过 React 组件的状态管理和上下文 API 来传播新的认证状态给各个子组件,从而达到局部刷新的效果。 ```jsx import React, { createContext, useState } from "react"; // 创建全局认证上下文 const AuthContext = createContext(); export const AuthProvider = ({ children }) => { const [token, setToken] = useState(localStorage.getItem("authToken")); useEffect(() => { window.addEventListener("storage", handleStorageChange); return () => { window.removeEventListener("storage", handleStorageChange); }; }, []); const handleStorageChange = (event) => { if (event.key === "authToken") { setToken(event.newValue); // 更新当前 context 中的 token } }; return ( <AuthContext.Provider value={{ token }}> {children} </AuthContext.Provider> ); }; ``` #### 结合 Spring Security 和 JWT 进行后台校验 在服务器端,每当接收到带有新 token 的请求时,应该立即验证该 token 是否有效,并返回相应的响应给前端。如果发现 token 已经失效或者被篡改,则应提示用户重新登录[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值