这是我的浏览器内置返回功能的问题。
假设我有两个页面:Page1和Page2。
Page1的作用是下载一个.json文件,然后在网页上打印.json文件的数据。
Page2允许用户将新数据插入该.json文件。
如果用户点击了page1然后转到第2页插入新数据,则点击返回按钮。 .json文件不会更新。因此,刚插入的数据不会显示。
但我需要更新新数据。
有什么想法解决这个问题?
答案 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