Polymer 1.x:如何在注销后重置整个应用程序
我有一个聚合物应用程序。当用户注销时,我想将整个应用程序重置为其原始状态。(现在,当用户注销后重新登录时,应用程序会将用户返回到他们注销时所在的应用程序状态和页面。) 是否有任何方便(即全球)的应用程序设计或代码模式来实现这一点?如果没有任何方便/全局的方法,请说明如何在本地(即,在逐个元素的基础上)实现这一点 编辑 经过一些研究(),到目前为止,似乎有两个主要的建议。欢迎其他人 重新加载浏览器 可以使用JS语句强制刷新浏览器页面:Polymer 1.x:如何在注销后重置整个应用程序,polymer,polymer-1.0,polymer-1.x,Polymer,Polymer 1.0,Polymer 1.x,我有一个聚合物应用程序。当用户注销时,我想将整个应用程序重置为其原始状态。(现在,当用户注销后重新登录时,应用程序会将用户返回到他们注销时所在的应用程序状态和页面。) 是否有任何方便(即全球)的应用程序设计或代码模式来实现这一点?如果没有任何方便/全局的方法,请说明如何在本地(即,在逐个元素的基础上)实现这一点 编辑 经过一些研究(),到目前为止,似乎有两个主要的建议。欢迎其他人 重新加载浏览器 可以使用JS语句强制刷新浏览器页面: location = location; 这个解决办法令我
location = location;
这个解决办法令我不满意。它本质上是一种黑客行为,会造成性能问题和其他不良副作用,如等待屏幕刷新和重新绘制
无状态体系结构
有人建议使用无状态应用程序架构。但我不知道如何在聚合物应用程序的编码上下文中实现它。同样,欢迎您提出建议和想法。我提出的最佳解决方案是在用户注销时使用
location.reload()
方法刷新浏览器
诀窍是你必须为你的应用程序添加一些独特的逻辑,以防止出现无休止的循环情况
注销时重新加载:
user: {
...
observer: '_userChanged',
},
...
_userChanged: function() {
var bool = this.foo(); // Add logic here to prevent endless loop condition
if( !this.user && bool ) {
location.reload();
}
},
几种可能的解决办法包括:
{}
无状态意味着,到目前为止,应用程序的行为取决于用户的操作。如果这个用户一次又一次地重复相同的动作,他会一直这样做并看到相同的动作(基本上)。@sascha10000:谢谢。作为一个示例,你能指出一个使用无状态架构的聚合应用程序吗?在我看来,Polymer应用程序本质上是有状态的,因为它基本上依赖于数据绑定、属性和其他拥有状态的实体。不,我不知道任何Polymer应用程序。但也许你会发现一些关于“无状态与有状态”讨论的有趣文章