Hy!Json正在緩存不正確
我的JS正在從控制器請求一個JSON來編輯一個現有的對象,一個填充的下拉列表。
然後,視圖會從我的autosuggest下拉列表中發送實際值,最後將新值與舊值進行比較並存儲新值。
它就像一個人名單。當我加載頁面時,ddl中有一些人員,我可以添加或刪除人員。
這是我的控制器:
[HttpGet]
public JsonResult JSON(int order)
{
IEnumerable<Person> persons = dataServ.Envolvidos.GetPerson(order)
return this.Json(new { Result = persons }, JsonRequestBehavior.AllowGet);
}
而且我的Json電話:
$.getJSON("/Order/JSON", { order: $("#Id").val() }, function (data) {
...
});
一切都很好,除了由點I.E.正在緩存這個JSON,並且當我發送新的值並再次返回編輯頁面時,舊值將在那裏而不是新值。但新值存儲在數據庫中,就像應該一樣。
我在Chrome和Firefox上測試過,當我編輯並再次編輯之後,它完成了一個新的json調用,並且新的值與I.E不同。
我錯過了什麼嗎?我應該怎樣做JSON結果不會被緩存?
Tks man !!!!它真的有幫助! – Thiago 2011-05-24 19:14:27
是否緩存通常更好的是服務於數據的服務,因爲它知道數據陳舊之前的時間。此解決方案將強制服務的所有客戶端將此行放入其客戶端代碼中。如果這是不可接受的,則需要修改該服務以在其響應中包括適當的頭部,以向客戶端指示他們不應該緩存。 – 2011-05-24 22:57:03
@Gweebz。服務器端和客戶端緩存完全不同。在這種情況下,沒有人強迫客戶這麼做。恰巧IE客戶端喜歡比其他客戶端更積極緩存,所以IE需要這一行代碼。服務器端緩存可以並應該獨立於此決策進行配置。至於用服務器端創建的頭文件控制客戶端緩存,我沒有看到好處。它只會在服務器端和客戶端代碼之間建立一種緊密的耦合,您自己認爲這是不好的。 – Milimetric 2011-05-24 23:05:34