2014-02-21 40 views
3

我有一個函數新手:Ext.decode究竟幹什麼?

function openOpportunityHome() { 

showSpinner("Loading.Please wait "); 
Ext.Ajax.request({ 
      url : contextPath + '/OpportunityTracker.do', 
      method : 'POST', 
      params : { 
       'role' : SALES_TRACKER_ROLE 
    }, 
      success : function(response, request) { 
       hideSpinner(); 
       MD_opportunityMasterDataVO = Ext 
         .decode(response.responseText); 
       ADMIN_OPP_LIST_FLAG =MD_opportunityMasterDataVO.adminOppListFlag; 
       showOpportunitySearch(); 

      }, 
      failure : function(response, request) { 
       hideSpinner(); 
       ajaxFailureCallbackFn(response, request); 
      } 
     }); 

} 在這裏,我有這樣的說法 Ext.decode(response.responseText);

當這個函數被調用時究竟發生了什麼?請從請求/響應範圍的角度講述。

回答

4

Ext.decode()只是類似於JSON.parse()一個JSON解析器和解析文本字符串到你可以在你的JavaScript訪問的對象。

它實際上是Ext.JSON.decode()的別名。

您可以在ExtJS文檔中閱讀關於它here的更多信息。

1

您可以使用3種方法來解析響應。

  1. 瀏覽器的默認方法:JSON.parse()來
  2. 分機方法:Ext.JSON.decode()的簡寫Ext.decode()

基本上response.responseText將在字符串格式。 解碼後,它將是一個對象。如果響應爲空,則解碼方法將引發錯誤。