2013-09-05 97 views
0

代碼:在一個Ajax調用緩存結果

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調用不會被調用,只是從緩存讀取結果?

回答

0

可以使物體

{ 
    url: "", 
    result: "" 
} 

(基本上是鍵/值字典),每次CallSyncAjax函數被調用數組,檢查是否網址已被調用,如果是的話 - 從數組中檢索相應的結果。否則,請進行AJAX調用並將新的url /結果對存儲在數組中。