我正在通過Socrata'sSODA api發佈一些政府數據。是否有推薦的常用模式來記憶ajax調用?
此API提供了一種通過REST調用檢索行的方法。該API允許查詢的有限參數化 - 基本上,您可以執行全文搜索,而不需要其他任何操作。我找不到一種方法來形成返回的數據 - 例如,只返回某些數據列。
因此,基本上我只能得到每個數據視圖的所有行和所有列。這是好的,我想,但我想緩存它 - 記憶它使用下劃線術語。
是否有一種模式用jQuery記憶ajax調用?
編輯:給你什麼,我談論的想法,這裏是我在做什麼目前。
function onclick(event) {
var $t = $(event.currentTarget);
var itemId = $t.attr('data-itemid');
var url = getRestUrl(itemId);
if (typeof datacache[itemId] === "undefined") {
$.ajax({
url : url,
cache : true,
type : "GET",
dataType : "json",
error : function(xhr,status,error) {
raiseError(error);
},
success : function(response, arg2, xhr) {
datacache[itemId] = response;
doSomethingWithTheData(url, itemId);
}});
}
else {
doSomethingWithTheData(url, itemId);
}
}
// then, doSomethingWithTheData() simply references datacache[itemId]
這似乎喜歡它的,雖然我還沒有測量速度更快。我真正想知道的是,是否有一種常見模式可以做到這一點,我可以使用,以便讀取代碼的每個人都能立即看到我在做什麼?
似乎它將取決於數據源性質的** lot **。 – Pointy
這是爲什麼?假設返回的數據是json。我想盡量減少XHR的使用,甚至希望最大限度地減少XHR與緩存結果。該模式應該非常簡單,並且是通用的。 – Cheeso
我的意思是它取決於數據的「可變性」。 – Pointy