我正在学习Angular,目前我正在尝试将JSON文件正确加载到我的代码中,因此我可以迭代它并显示所有结果。我可以设法做到这一点,但是一旦我更改了JSON,又添加了三个注册表,我看不到它们。
这是因为我正在缓存我的JSON,正如我在开发人员控制台的网络部分所看到的那样。
我尝试更改我的数据服务服务(使用$ q进行异步请求以及$ http),因此我可以配置$ http对象:
app.factory('dataService', ["$http", "$q", function($http, $q) {
return {
getAll: getAll
}
function getAll() {
var defered = $q.defer();
var promise = defered.promise;
$http({
url: "data.json",
cache: false,
method: "GET"
})
.success(function(data) {
defered.resolve(data);
})
.error(function(err) {
defered.reject(err)
});
return promise;
}
}]);
这一直在工作,但没有停止缓存我的JSON。我删除了我的缓存并再次执行了应用程序,我得到了新的结果,但是一旦我添加了更多的注册表,它就会被缓存。
所以,问题是......我怎样才能避免缓存我的JSON文件?
答案 0 :(得分:2)
最好的办法是在返回data.json
时指定正确的Cache-Control
标头。
但是,如果您通过附加随机查询字符串参数AKA cache buster,很少或根本无法控制可以强制获取新资源的服务器。在角度情况下,这可能看起来像:
$http({
url: "data.json?_cache_buster=" + new Date().getTime(),
method: "GET"
})