在ajax调用中缓存结果

时间:2013-09-05 13:18:08

标签: jquery ajax caching

代码:

function CallSyncAjax(url, resid) {
try { parent.TimeOut(); } catch (ex) { }
var xmlhttp = new GetXmlHttp();
if (xmlhttp) {
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp && xmlhttp.readyState == 4) {//we got something back..
            if (xmlhttp.status == 200) {
                var StrResponse;
                StrResponse = xmlhttp.responseText.split('@@@');
                if (xmlhttp.responseText != "") {
                    if (StrResponse[0] != "") {

                        if (resid == "1000") {
                            //this function exist in ContactsList.apsx
                            AddGroupToMenu(StrResponse[0]);
                        }
                    }
                }
            }
        }
    }
    xmlhttp.open("post", url, true);
    xmlhttp.send();
  }
}

我从点击按钮的页面调用此函数,如下所示:

CallSyncAjax("?ExtFlag=saveGroup&AjaxFalg=SpecialRequest&groupName=" + TxtGroupName.GetText() + "&groupDesc=" + TxtgroupDesc.GetText(), "1000");

我的问题是我可以缓存结果,所以当我再次点击按钮时,不会调用ajax调用,只是从缓存中读取结果吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个对象数组

{
    url:  "",
    result: ""
}

(基本上是一个键/值字典),每次调用CallSyncAjax函数时,检查是否已经调用了URL,如果是,则从数组中检索相应的结果。否则进行AJAX调用并在数组中存储新的url / result对。