说服浏览器缓存由 JavaScript 更改的 DOM

发布于 2024-11-03 17:57:09 字数 163 浏览 1 评论 0原文

我有一个网络应用程序,其首页有一个登录表单。当提交登录表单时,一些 JavaScript jiggery-pokery 会在幕后发生,并且用户的数据会出现 - 无需页面加载。

问题在于,当用户离开页面,然后使用后退按钮导航回来时,页面处于原始的非登录状态。我可以让浏览器缓存更改后的 DOM 吗?

I have a web app, on the front page of which there is a login form. When the login form is submitted, some JavaScript jiggery-pokery happens behind the scenes and the user's data appears -- without a pageload.

The problem is that when the user navigates away from the page, then uses the back button to navigate back, the page is in its original, non-logged-in state. Can I have the browser cache the altered DOM?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清风挽心 2024-11-10 17:57:09

您可以尝试使用这样的插件: http://benalman.com/projects/jquery- bbq-plugin/

你必须在你的url中生成一个#logged链接,当你点击历史记录返回时,你只需要重新请求用户信息。

希望这有帮助。

You could try using a plugin like this one: http://benalman.com/projects/jquery-bbq-plugin/

You have to generate a #logged link into your url, when you click on history back you just have to re-request the user information.

Hope this helps.

很糊涂小朋友 2024-11-10 17:57:09

我大胆猜测,与其将一些在客户端上存储用户登录数据的东西一起破解(无论如何这是一个坏主意),沿着这些思路进行的事情将是一个更好的主意:

  1. 修复“jiggery-pokery”,以便它没有损坏。

    • 我的意思是:它并没有真正让用户登录,只是给他们带来了登录的错觉
    • 因此您需要对其进行更改,以便它存储一些信息(可能在会话中)来验证他们是否已登录。
  2. 一旦修复了 jiggery-pokery,您的页面就可以检查该信息并显示“已登录”DOM。

    • 如果他们没有登录,它仍然使用旧的 JS 方法来显示原始内容,登录他们,并更新 DOM(第一次)。

有道理吗?

当前流程:

  1. 访问站点

  2. JS登录

  3. 更新DOM

新流程:

  1. 访问站点

  2. 检查是否登录

  3. 提供适当的 DOM

  4. JS 登录

  5. 后端存储登录信息

  6. JS 更新 DOM。

I would venture to guess that instead of hacking something together that stores user login data on the client (which is a bad idea anyway), something along these lines would be a much better idea:

  1. Fix the "jiggery-pokery" so that it's not broken.

    • What I mean is: it's not REALLY logging the users in, it's just giving them the illusion of being logged in
    • So you need to change it so that it stores some piece of information (probably in the session) that verifies that they are logged in.
  2. Once the jiggery-pokery is fixed, your page can do a check for that piece of info and present the "logged in" DOM.

    • If they're not logged in, it still uses the old JS method to show the original, log them in, and update the DOM (the first time).

Make sense?

Current flow:

  1. Visit site

  2. JS login

  3. Update DOM

New Flow:

  1. Visit Site

  2. Check if logged in

  3. Present appropriate DOM

  4. JS Login

  5. Backend stores login info

  6. JS updates DOM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文