当您使用浏览器返回时会发生什么?

奥古斯丁·里丁格

当我<== back在浏览器中按下按钮时,怎么回事?

  • 是否再次使用相同的网址进行查询?
  • 当前DOM状态是否已保存和恢复?(仅HTML)
  • 当前页面状态是否已保存和恢复?(HTML + Javascript)
  • 是否查询服务器,但如果发送unchanged则使用本地缓存?
  • 总的来说,我们可以认为我们在前一页上有最新信息吗?

由于这些情况,我不清楚:

  • Stackoverflows有时会非常糟糕地处理我的投票(不显示它,因为我上次投票是在5分钟前,但它在另一个选项卡中,所以阻止了我撤消,等等)
  • 当我在当地环境中工作时,我不会有太多的需求
  • 我始终不确定返回时会发生什么,因此,作为开发人员,请尽可能避免使用它(实际上只是在历史记录中查找URL)

我的观点是,再次查询将是最好的主意,但并不是最快的方法,在这种情况下浏览器可能希望速度更快(以打动用户)...另一方面,存储页面状态必须花费很多。记忆力...

亚历克斯·韦恩

这取决于。

它取决于HTTP请求方法。如果页面是GET,浏览器可能会决定缓存它,而不是重新请求。POST和其他HTTP方法不会被缓存,因为它们可能会对服务器端产生副作用。这就是为什么如果您返回到POST请求加载的页面,甚至会看到警告对话框的原因。

它取决于缓存头。 (请参阅此处)被明确允许按照其标题所述进行缓存的页面在导航回时可以重新使用。

这取决于浏览器。有些已经针对用户体验进行了优化(更多的缓存,更快的速度,更多的陈旧性)。其他人比较简单的地方,只需重新请求页面即可。

这取决于内存使用情况,尤其是在移动设备上。如果页面很大或可用内存不足,浏览器可能会决定不保留页面内容和状态。

浏览器是复杂的软件,而聪明的人一直在努力对其进行优化。


至于用于反向导航的缓存级别,我认为有三个主要级别

(这可能是一个过分简单的做法,但是它将为您提供大致的概念。)

  1. 未缓存。页面被重新请求。
  2. 缓存的资产。内容和资产来自服务器时将被缓存。这可能不需要内存,仅需要磁盘空间,因为它可能不是很多数据。
  3. 缓存状态。DOM状态,JS堆,表单字段值都保留在内存中。这可能需要大量内存,并且可能不会写入磁盘,因为根据页面的不同,它可能会很多兆字节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在浏览器中请求URL时会发生什么?

来自分类Dev

HTTP请求使用不同的浏览器标头时会发生什么?

来自分类Dev

当浏览器不支持CSS伪类时会发生什么?

来自分类Dev

浏览器搜索时会发生什么?(ARP,DNS,TCP详细信息)

来自分类Dev

Flask:当用户在执行较长的过程时关闭浏览器时会发生什么?

来自分类Dev

当您从C ++函数返回引用时会发生什么?

来自分类Dev

当您使用 select# 作为 css 选择器时会发生什么?

来自分类Dev

当您用尽PID时会发生什么?

来自分类Dev

当您从函数返回JavaScript语句时会发生什么,例如return console.log(“ Hello”)

来自分类Dev

当您写入具有相同配置的寄存器时会发生什么?

来自分类Dev

当您在浏览器中浏览网站时,会发生什么?

来自分类Dev

在视觉上,当您使用&符号调用同一进程时会发生什么

来自分类Dev

当您使用Task.Run太多而导致线程池耗尽时会发生什么?

来自分类Dev

当您使用多个嵌套作用域时会发生什么?

来自分类Dev

当您使用范围通道中断for语句时会发生什么

来自分类Dev

当您使用jquery更改img标签的src时会发生什么?

来自分类Dev

当您使用“ + =”在Java中“更改”字符串时会发生什么情况?

来自分类Dev

当您从《虚无》中抽奖时会发生什么?

来自分类Dev

当您打开/关闭手柄时会发生什么?

来自分类Dev

当您移到非右值参考时会发生什么?

来自分类Dev

当您模糊DOM元素时会发生什么

来自分类Dev

当您“不安装而尝试Ubuntu”时会发生什么?

来自分类Dev

当您调用包含yield的函数时会发生什么?

来自分类Dev

当您“不安装而尝试Ubuntu”时会发生什么?

来自分类Dev

当您仅实例化“ new objectName()”时会发生什么

来自分类Dev

启用Firebug后,浏览器会发生什么事件?

来自分类Dev

当浏览器不支持CSS样式,而该属性支持时,会发生什么呢?

来自分类Dev

尝试使用Java捕获-发生异常时会发生什么?

来自分类Dev

当函数在python中返回自己的名称时会发生什么?

Related 相关文章

  1. 1

    在浏览器中请求URL时会发生什么?

  2. 2

    HTTP请求使用不同的浏览器标头时会发生什么?

  3. 3

    当浏览器不支持CSS伪类时会发生什么?

  4. 4

    浏览器搜索时会发生什么?(ARP,DNS,TCP详细信息)

  5. 5

    Flask:当用户在执行较长的过程时关闭浏览器时会发生什么?

  6. 6

    当您从C ++函数返回引用时会发生什么?

  7. 7

    当您使用 select# 作为 css 选择器时会发生什么?

  8. 8

    当您用尽PID时会发生什么?

  9. 9

    当您从函数返回JavaScript语句时会发生什么,例如return console.log(“ Hello”)

  10. 10

    当您写入具有相同配置的寄存器时会发生什么?

  11. 11

    当您在浏览器中浏览网站时,会发生什么?

  12. 12

    在视觉上,当您使用&符号调用同一进程时会发生什么

  13. 13

    当您使用Task.Run太多而导致线程池耗尽时会发生什么?

  14. 14

    当您使用多个嵌套作用域时会发生什么?

  15. 15

    当您使用范围通道中断for语句时会发生什么

  16. 16

    当您使用jquery更改img标签的src时会发生什么?

  17. 17

    当您使用“ + =”在Java中“更改”字符串时会发生什么情况?

  18. 18

    当您从《虚无》中抽奖时会发生什么?

  19. 19

    当您打开/关闭手柄时会发生什么?

  20. 20

    当您移到非右值参考时会发生什么?

  21. 21

    当您模糊DOM元素时会发生什么

  22. 22

    当您“不安装而尝试Ubuntu”时会发生什么?

  23. 23

    当您调用包含yield的函数时会发生什么?

  24. 24

    当您“不安装而尝试Ubuntu”时会发生什么?

  25. 25

    当您仅实例化“ new objectName()”时会发生什么

  26. 26

    启用Firebug后,浏览器会发生什么事件?

  27. 27

    当浏览器不支持CSS样式,而该属性支持时,会发生什么呢?

  28. 28

    尝试使用Java捕获-发生异常时会发生什么?

  29. 29

    当函数在python中返回自己的名称时会发生什么?

热门标签

归档