使用完整的AJAX重置HTML页面

时间:2013-08-18 03:25:43

标签: jquery html

我已经使用完整的ajax设置了一个在线银行系统。这意味着所有事情都发生在一个页面上。

<div class="login">
    <input type="text" class="username">
    <input type="password" class="password">
    <input type="submit" value="Login">
</div>
<div class="dashboard">
    <div class="nickname"></div>
    <div class="balance"></div>
    <div class="transactions"></div>
</div>

分隔符logindashboard最初在页面加载时隐藏,但会根据会话的存在和有效性进行显示。 (因此,如果您已登录,则仪表板显示,如果不是,则登录显示)

在信息中心中,有敏感数据,例如您当前的余额,最近的交易等。当用户决定退出时,该信息仍然存在于HTML中。

我不想做以下事情:

$(".nickname").html('');
$(".balance").html('');
$(".transactions").html('');

请注意,我的标记,嵌套和复杂程度远远超过.html

我不想在退出时刷新页面。

通过不刷新页面,我无法删除$(".dashboard").html()等HTML节点,因为这会破坏在用户登录后将数据放入这些div的任何代码。

我想要阻止的是,有人登录,注销,然后其他人进来,并使用firebug / chrome开发控制台在源仪表板上达到峰值。目前发生的情况是,仪表板被隐藏,cookie被删除,并显示登录。仪表板中的数据不会被清除。

有没有办法可以保存当前的HTML页面,然后当用户注销时,我可以重置整个页面而不刷新?

3 个答案:

答案 0 :(得分:1)

您可以克隆仪表板:

$('.dashboard-template').clone().addClass('dashboard').insertBefore('.dashboard-template');

然后填写相关信息,并在注销时将其删除。

答案 1 :(得分:0)

我编写类似系统的方法是将登录页面分开。登录后,所有内容都由AJAX构建。注销时,用户将被发送回登录页面。使用一次性安全代码来构建页面会停止返回到浏览器的上一页。

那就是说,我不确定你怎么能避免使用html('')之类的东西,或者为什么这样的解决方案如此不受欢迎。也许.remove() - 请参阅here

答案 2 :(得分:0)

您可以使用webstorage存储缓存中的数据,在用户登录时保存数据,捕获数据,填写表单然后删除网络存储中的数据