Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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
Html 使用ajax修改页面时出现问题,浏览器会将未修改的页面保留在缓存中_Html_Ajax_Caching - Fatal编程技术网

Html 使用ajax修改页面时出现问题,浏览器会将未修改的页面保留在缓存中

Html 使用ajax修改页面时出现问题,浏览器会将未修改的页面保留在缓存中,html,ajax,caching,Html,Ajax,Caching,我的页面从数据库中加载一些信息,然后通过AJAX修改这些信息 我单击指向另一个页面的链接,然后使用“后退”按钮返回到原始页面 我以前通过AJAX对页面所做的更改不会出现,因为浏览器在缓存中存储了未更改的页面 有没有一种方法可以在不将页面设置为不缓存的情况下修复此问题 谢谢:)想象一下,每个向服务器请求信息的请求,包括初始页面加载和每个ajax请求,都是不同的实体。在服务器和浏览器之间的任何位置都可以缓存,也可以不缓存 您正在修改提供给您(在大多数情况下由浏览器缓存)的初始页面,其中包含对服务器的

我的页面从数据库中加载一些信息,然后通过AJAX修改这些信息

我单击指向另一个页面的链接,然后使用“后退”按钮返回到原始页面

我以前通过AJAX对页面所做的更改不会出现,因为浏览器在缓存中存储了未更改的页面

有没有一种方法可以在不将页面设置为不缓存的情况下修复此问题


谢谢:)

想象一下,每个向服务器请求信息的请求,包括初始页面加载和每个ajax请求,都是不同的实体。在服务器和浏览器之间的任何位置都可以缓存,也可以不缓存

您正在修改提供给您(在大多数情况下由浏览器缓存)的初始页面,其中包含对服务器的任意请求和动态DOM操作。浏览器必须具有跟踪这些更改的功能

为了重建页面,您必须维护状态,可能需要使用cookie。事实上,在我看来,一个动态生成的文档,您可能希望移动到其中或从中移动,它肯定应该定义一个工作流来持久化并检索它的状态


也许可以为每个被操作的元素设置一个cookie,其中包含发送到服务器以获取数据的密钥?

那么,您的意思是将对页面元素的每个更改存储在cookie中,如果页面返回给@David,则使用JS重新加载这些更改。如果您将代码设计为特定输入产生特定输出,则只需存储键即可。例如,用户正在查看一个格式良好的列表或网格,该列表或网格由许多房地产的丰富细节组成。用户花费了大量时间编辑此信息列表,因此丢失它可能会降低您网站的价值。编写代码,这样您就可以一次只使用列表的主键构建一个项目的列表。然后,每当修改该列表时,您只需在cookie中保留一个键列表[233223525235,23],当您的脚本加载时,只需检查该cookie即可。如果存在,那么您知道应该通过调用服务器并检索和显示列表中每个项目的数据来重建列表。这有意义吗?我可能会更加努力,但您的代码将更加智能,从长远来看,您将完成更多的工作。实际上有很多ajax控件,比如jquery插件,它们已经能够使用cookie维护状态。使用我刚才描述的策略,任何值得使用的网格都可以在页面周期中生存下来。无论如何-祝你好运。是的,这是有道理的,但我想我还没有描述我的应用程序做什么/需要什么。我的代码所做的是:通过AJAX,它允许用户向网站添加页面,有点像CMS/wiki。然后,添加的页面出现在用户屏幕上的页面列表中。当用户导航到另一个页面,然后使用“返回”按钮返回时,页面列表现在已过时。若要应用您的解决方案,我是否将额外创建的项目(仅链接+文本)存储在cookie中,然后在重新加载页面时将其加载回?我如何跟踪要加载的内容以及已经显示的内容?我认为在我的例子中,内容将被更新得太多(任何用户都可以创建页面),以至于页面不应该被缓存?