我已经在AngularJS上摆弄了一段时间,我遇到了一个问题。
每次更改元素(创建/删除/更新)时,都会发送请求并将其保存到数据库中。 问题是我下次刷新页面时没有加载我的更改 - 旧数据作为来自服务器的响应发送而没有我做出的更改。
我在后端使用.NET MVC,在前端使用AngularJS。
任何帮助都将不胜感激。
谢谢!
编辑:
我有理由相信.net是问题 - 在我重建整个解决方案后,它会加载更改。
答案 0 :(得分:1)
实际上,概念上正确的方法是禁用服务器端的缓存。原因是您有自定义行为,并且您希望在每次回发后加载“新鲜”数据。每当您通过其他客户端调用相同的方法或直接访问该URL时,您应该看到最新的数据。以下是如何禁用缓存的示例摘录:
[OutputCache(Duration=0, VaryByParam="*")]
public JsonResult Details()
{
//snip snip
return Json(theResult, JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:0)
尝试这样的事情:
$http.post({
url: "example.cpm",
cache: false //This comes from jQuery
//etc..
})
答案 2 :(得分:0)
缓存有时处于浏览器级别,您无法强制浏览器不从javascript缓存。这不是特定的角度问题。
如果对某些html / js文件进行缓存,你可以做的就是将时间戳附加到url,这样每当你的url是新的并且没有缓存完成时。
答案 3 :(得分:0)
你是否在浏览器中看到类似的内容,这意味着浏览器正在缓存响应,而你得到的响应并非来自服务器。
此缓存不是javascript级别,而是角度而非浏览器缓存。有多种方法可以确保浏览器不会缓存来自缓存的响应。