Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
说服浏览器缓存由JavaScript更改的DOM_Javascript_Browser History - Fatal编程技术网

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

说服浏览器缓存由JavaScript更改的DOM,javascript,browser-history,Javascript,Browser History,我有一个web应用程序,在它的首页上有一个登录表单。当提交登录表单时,会在幕后发生一些JavaScript恶作剧,并显示用户的数据,而无需页面加载 问题是,当用户离开页面导航,然后使用“后退”按钮向后导航时,页面处于原始的未登录状态。我可以让浏览器缓存修改过的DOM吗?您可以尝试使用如下插件: 您必须在url中生成一个已登录的链接,当您单击历史记录返回时,您只需重新请求用户信息 希望这能有所帮助。我大胆猜测,与其将用户登录数据存储在客户端上的东西拼凑在一起(这是个坏主意),不如采用以下方法: 修

我有一个web应用程序,在它的首页上有一个登录表单。当提交登录表单时,会在幕后发生一些JavaScript恶作剧,并显示用户的数据,而无需页面加载


问题是,当用户离开页面导航,然后使用“后退”按钮向后导航时,页面处于原始的未登录状态。我可以让浏览器缓存修改过的DOM吗?

您可以尝试使用如下插件:

您必须在url中生成一个已登录的链接,当您单击历史记录返回时,您只需重新请求用户信息


希望这能有所帮助。

我大胆猜测,与其将用户登录数据存储在客户端上的东西拼凑在一起(这是个坏主意),不如采用以下方法:

修好这把乱七八糟的拨火棍,使它不会坏

我的意思是:这并不是真的让用户登录,只是给他们一种被登录的错觉 因此,您需要对其进行更改,以便它存储一些信息,这些信息可能存储在验证他们是否登录的会话中。 一旦jiggery扑克被修复,您的页面可以检查该信息并显示登录的DOM

如果他们没有登录,它仍然使用旧的JS方法来显示原始文档,登录它们,并在第一次更新DOM。 有道理吗

电流:

访问站点

JS登录

更新DOM

新流程:

访问站点

检查是否已登录

呈现适当的DOM

JS登录

后端存储登录信息

JS更新DOM


当按下后退按钮时,浏览器不会向服务器发出请求,因为页面已缓存。我试图避免在Cache-control中设置no-store。好吧,解决方案是让Javascript在页面加载之前检查用户是否登录,因此如果用户登录,则会显示登录的DOM。不过,这仍然无法修复坏掉的登录系统:-/给人一种登录的假象似乎会让人更头疼。这不是假象-我真的在他们的浏览器中设置了cookie。我只想淡入淡出,而不是产生不和谐的页面加载。相关: