Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如果动态加载内容,history.pushState()是否会导致将该内容添加到浏览器缓存中?_Html_Browser_Browser History_Pushstate - Fatal编程技术网

Html 如果动态加载内容,history.pushState()是否会导致将该内容添加到浏览器缓存中?

Html 如果动态加载内容,history.pushState()是否会导致将该内容添加到浏览器缓存中?,html,browser,browser-history,pushstate,Html,Browser,Browser History,Pushstate,下面是发生的情况: 页面加载(时间轴视图) 用户向下滚动到底部 更多时间线内容通过AJAX加载 URL被设置为具有history.pushState()的新值。如果直接访问此URL,它将加载时间线,以便它包含迄今为止动态加载的所有内容 用户单击时间轴中的链接 然后,用户单击浏览器中的“后退”按钮 我的问题:当按下“后退”按钮时,浏览器是否会重新加载通过pushState()提供的url(如果他们在时间线上走了很长的一段路,这可能会对性能造成很大影响)?我希望当调用pushState()以包含添加

下面是发生的情况:

  • 页面加载(时间轴视图)
  • 用户向下滚动到底部
  • 更多时间线内容通过AJAX加载
  • URL被设置为具有history.pushState()的新值。如果直接访问此URL,它将加载时间线,以便它包含迄今为止动态加载的所有内容
  • 用户单击时间轴中的链接
  • 然后,用户单击浏览器中的“后退”按钮
  • 我的问题:当按下“后退”按钮时,浏览器是否会重新加载通过pushState()提供的url(如果他们在时间线上走了很长的一段路,这可能会对性能造成很大影响)?我希望当调用pushState()以包含添加了动态内容的DOM时,它会以某种方式更新其页面缓存,然后重新加载该缓存

    如果它没有做任何像那样的自动缓存魔术,有没有办法让它这样做以提高性能?每次用户点击远离时间线的地方,重新加载大量帖子似乎是浪费时间。此外,当他们滚动时,URL会不断更新,因此每次点击时都会有新的帖子加载,甚至不使用正常的浏览器缓存


    我已经查找了相关信息,但似乎找不到任何说明pushState()如何修改缓存的信息。

    历史API只向历史添加条目,与缓存无关。当用户在历史记录中导航时,
    popstate
    事件会通知您,以便您可以恢复以前的视图。这可能意味着,您首先再次执行加载该内容的相同AJAX请求,这就是缓存可以进入的点:如果您明智地设置缓存(从服务器/HTTP角度),那么浏览器将很快实现(可能在快速执行条件GET请求之后),他已经缓存了那个资源,而且它仍然有效。@CBroe谢谢。这很有道理。