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