Javascript 如何防止使用window.location连续刷新页面

Javascript 如何防止使用window.location连续刷新页面,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我在angular有一个简单的页面,我需要它在onload时手动刷新,因为我的项目中有一些要求。我添加了一个代码,它工作正常,但不断刷新页面。我需要防止这里持续刷新。下面是代码 home.component.ts 从'@angular/core'导入{Component,OnInit}; @组成部分({ 选择器:“应用程序主页”, 模板:“转到下一页”, 样式URL:['./home.component.css'] }) 导出类HomeComponent实现OnInit{ 构造函数(){} 恩戈

我在angular有一个简单的页面,我需要它在onload时手动刷新,因为我的项目中有一些要求。我添加了一个代码,它工作正常,但不断刷新页面。我需要防止这里持续刷新。下面是代码

home.component.ts
从'@angular/core'导入{Component,OnInit};
@组成部分({
选择器:“应用程序主页”,
模板:“转到下一页”,
样式URL:['./home.component.css']
})
导出类HomeComponent实现OnInit{
构造函数(){}
恩戈尼尼特(){
window.location.reload();
/*第一数据*/
log('hello');
}
}

我不知道您为什么要刷新页面

但你的情况是

第一次
应用程序主页
初始化并刷新页面。再次在页面重新加载后
app home
初始化并刷新页面,依此类推

因此,为了防止出现这种情况,您必须提供一个黑客解决方案。在某些情况下,这显然会失败

解决办法是

ngOnInit() {
   if (!sessionStorage.getItem('isPageRefreshed')) { 
       sessionStorage.setItem('isPageRefreshed', 'true');
      // This will reload page once prevent reloading of page again for that session. 
       window.location.reload();

   }
 }

我仍然认为这是一个重复的问题无论如何。。。 尝试以下解决方案:

if (!localStorage.getItem('firstReload') || localStorage.getItem('firstReload') == 'true') {
  localStorage.setItem('firstReload', 'false');
  window.location.reload();
} else {
  localStorage.setItem('firstReload', 'true');
}
这是一个工作示例:


它通过单击主页上的链接和刷新页面来工作。

但是你使用window.location做什么呢?不要使用路由?这不是一个非常“角度”的方法(或者通常的SPA方法)。您应该使用活动路由和路由器获取并设置查询参数。并且停止使用VAR。您有很多语法问题,数组不是映射。这是否回答了您的问题@aepifano您的回答也不适合这个问题。OP希望在会话中重新加载页面。按照您的答案,页面在刷新一次后将永远不会刷新
if (!localStorage.getItem('firstReload') || localStorage.getItem('firstReload') == 'true') {
  localStorage.setItem('firstReload', 'false');
  window.location.reload();
} else {
  localStorage.setItem('firstReload', 'true');
}