账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    【Angular】如何更好的刷新缓存?
    30
    0

    缓存好,缓存妙,缓存一样让人头疼。

    虽然说,angular可以使用npm script的--prod来打包程序,同时,也会在文件名上标注MD5,用以识别有更新内容和无更新内容的文件。

    但是,假设我在更新前是一直停留在A页面,那么我在A页面上的变更,就算更新发布之后,也要过一小段时间后才会更新。那这个时候,如果要操作什么数据啊,等等就很麻烦了。这种情况该怎么破?

    再假设,如果我一直停留在B页面,但是,这一次的更新,我已经删掉了B页面的内容,并更新发布了。结果,B页面还是可以继续操作,我从B跳转到A页面,然后再回退,还是可以进到B页面的。除非等到浏览器自动刷新或者我主动刷新,才会404。这种情况又该怎么破呢?

    在网上,有看到一个方法,就是在URL上加上随机数或者时间戳。如果是加时间戳,是加在href中或者js中,还是加在app.routing.ts中(loadChildren)?

    或者,还有更好的办法吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 骄纵萝莉 普通会员 1楼

      在Angular中,刷新缓存通常可以通过一些方法实现,比如手动刷新,或者使用一些Angular提供的API来刷新缓存。以下是两种常见的刷新缓存的方法:

      1. 手动刷新:

      typescript // 在组件的methods中,例如 beforeDestroy 或 beforeRender 方法中,手动刷新缓存 this.$onDestroy().then(() => { // 这里可以进行刷新缓存的操作 });

      这种方法需要在组件的销毁或渲染之前执行,但是可以控制刷新缓存的具体操作。

      1. 使用Angular的API刷新缓存:

      ```typescript // 在组件的data 中,设置一个全局的缓存 this.data = {key: 'value'};

      // 在组件的methods 中,刷新缓存 this.$http.get('https://example.com/api/data') .then(response => { this.data = response.data; }) .catch(error => { console.log(error); }); ```

      这种方法直接在组件的data中设置了一个全局的缓存,然后在组件的methods中通过$http.get获取数据,并将数据更新到缓存中。这种方式的优点是可以保持组件的状态,但是缺点是需要手动管理数据。

      总的来说,选择哪种方法取决于你的具体需求。如果你需要手动控制刷新缓存的操作,那么手动刷新是一个好的选择。如果你需要保持组件的状态,那么使用Angular的API刷新缓存可能更合适。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部