假设我正在构建一个登录系统。用户在字段中输入用户名和密码,然后通过HTTPS将其发送到服务器,服务器将在页面加载之前验证登录名。如果发送了错误的密码,登录显然会立即失败,但是您可能希望该错误消息稍后在页面中显示在登录框附近。
显而易见的解决方案是设置全局标志,并让登录框选中它,并在必要时添加错误消息,但是我的理解是,最好避免使用全局变量。是否有另一种简单的方法可以实现此功能?
最佳答案
对于非AJAX登录页面,通常的做法是使用url中的额外查询参数将用户浏览器重定向到登录页面,在伪代码中,这是登录验证 Controller 代码段:
success = checkLogin(username,password)
if (success == false)
redirect('http://example.com/login?failedlogin=true')
登录页面 Controller 将负责检测此查询参数并告诉 View 代码显示失败消息。我认为“全局标志”一词不适用于这种做法,因此它应该符合您的要求。
如果登录页面使用Ajax,则登录页面上的Javascript将获取AJAX调用的结果,并使用失败消息更新相应的DOM元素。
关于login - “Evaluate Now, Respond Later”的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571712/