浏览器返回上一页功能,如果返回,如何重新加载文档?

时间:2016-02-17 08:02:13

标签: javascript jquery html json browser

这是我的浏览器内置返回功能的问题。

假设我有两个页面:Page1和Page2。

Page1的作用是下载一个.json文件,然后在网页上打印.json文件的数据。

Page2允许用户将新数据插入该.json文件。

如果用户点击了page1然后转到第2页插入新数据,则点击返回按钮。 .json文件不会更新。因此,刚插入的数据不会显示。

但我需要更新新数据。

有什么想法解决这个问题?

3 个答案:

答案 0 :(得分:0)

如果缓存是你的问题,那么你可能想要考虑这个有毛病的老板栗。将这些添加到您的import java.util.HashSet; import java.util.Set; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/rest") public class RESTConfig extends Application { public RESTConfig() { } @Override public Set<Class<?>> getClasses() { final Set<Class<?>> returnValue = new HashSet<Class<?>>(); returnValue.add(TestService.class); return returnValue; } } 部分,但请注意,因为它的效果因浏览器/版本而异。有关详细信息,请参阅w3.org链接。

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class TestService
{

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String info(){
        return "This is the testservice";
    }
}

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

答案 1 :(得分:0)

我假设你使用javascript和onload事件来下载.json文件并显示其内容。问题在于,当您使用后退按钮时,不会触发onload事件。您可以尝试使用window.onpopstate事件而不是onload。当使用后退按钮导航到网页时,也会调用onpopstate事件。

function init() {
   //load .json ...
}   
window.onpopstate = init;

答案 2 :(得分:0)

可能是json数据正在被缓存,因此即使您在到达&#34; Page1&#34;时再次请求它,您可能正在阅读它的缓存版本。也就是说,如果您已成功避免页面本身被缓存,则仍可以缓存数据。

克服此类问题的简单方法是在每次加载时更改json数据的URL。例如。在URL中添加时间戳或其他一些理想的唯一部分:

myjson.json?时间戳= XXX