是否可以在页面上使用 window.location.reload() 重新加载除一个之外的所有内容?

时间:2020-12-23 19:51:26

标签: javascript

我对 javaScript 还很陌生,想知道是否可以在页面上使用 window.location.reload() 来重新加载页面上的所有内容,但只有一个?我已经研究过谷歌,但无济于事。

3 个答案:

答案 0 :(得分:2)

回答您的问题,不,无法使用 window.reload()

部分重新加载页面

您可以做的是获取 HTML 页面并使用它来替换页面上的部分内容。如果您的后端可以单独为您需要的页面部分提供服务会更好,这样您只需更新页面的内容而不是先解析一些 HTML,但它可以双向工作。

例如来自我制作的一个示例项目。这将定期从后端获取一些 HTML 并部分更新页面。 您可以在此处查看完整内容https://repl.it/@bluebrown/SSR-Dataframes#templates/dashboard.html

const fetcher = Object.entries(frames).map(([id, {refresh_rate}]) => {
    function refresh() {
      fetch(`/df/${id}`)
        .then((bytes) => bytes.text())
        .then((html) => document.getElementById(id).innerHTML = html)
        .catch(console.warn)
      return setTimeout(refresh, refresh_rate*1000)
    }
    return refresh();
  })

这很有效,因为后端和前端彼此很了解。 在其他情况下,您可能想要或需要获取完整页面并使用 jsdom 之类的内容对其进行解析。然后,您可以从该 DOM 中获取您需要的内容并更新页面上的正确元素。

答案 1 :(得分:0)

location.reload 方法重新加载当前文档,就像用户按下 F5 或浏览器重新加载按钮一样。

默认设置从 browser cache 重新加载页面(如果可用)。您可以强制该方法绕过 local cache 并通过向该方法传递 true 来从网络中检索文档。

location.reload(); //refreshes from cache //or location.reload(true); //to force a network request 

答案 2 :(得分:0)

你不能这样做,location.reload 将重新加载当前文档。我能想到的唯一方法,这可能不适用于您的页面设计,您可以将不同的内容放在单独的 iframe 中,并仅重新加载那些需要重新加载/刷新的 iframe。

相关问题