2014-02-18 93 views
0

我們在一個.Net頁面上創建了5個AJAX調用(例如下面的那個),爲了加快一點,我們 想將這些調用中的一部分移動到Global.asax。是否可以從Application_Start事件調用它? 另外,如何將「數據」結構存儲在「全局」變量中,以便我可以遍歷數據json結構 以便填充下面的我的下拉框「jqStatusID」?是否可以從GLOBAL.ASAX調用Web服務並將「data」json結構存儲在「全局」結構變量中?

function GetStatusList(async) { 
    $.ajax 
    ({ 
     async: async 
    , url: "svc/Job.svc/JobView/GetStatusList" 
    , cache: false 
    , dataType: "json" 
    , error: function (jqXHR, textStatus, errorThrown) { } 
    , success: function (data, textStatus, jqXHR) { 
     $.each(data, function (key, value) { 
      JobInstanceStatus[JobInstanceStatus.length] = { 
       StatusID  : value.StatusID, 
       Name   : value.Name 
      }; 
      $(jqStatusID).append($("<option></option>").attr("value", value.StatusID).text(value.Name)); 
     }); 
     $(jqStatusID).multiselect('refresh'); 
    } 
    }); 
} 

謝謝

回答

0

首先,jQuery是一個客戶端技術,因此不能在服務器端使用。其次,爲什麼要向您自己的服務器發送AJAX請求?您可以直接訪問數據並緩存它。

如果您想在Application_Start中提出請求,那麼它可能是應用程序範圍的數據,而不是用戶特定的。在這種情況下,您應該使用Cache而不是會話。

如果您想要並行撥打電話,則可以使用Task Parallel Library來查找服務器端的異步呼叫,這對您所描述的情況會更好。

+0

對不起我的意思是從Global.asax調用同一個Web服務,並找到一種方法來存儲json數據結構。所以你建議使用CACHE?我會仔細研究一下。謝謝 – Max

+0

你可以通過'HttpClient'或'WebClient'調用同一個web服務,但ajax是一種客戶端技術,你應該在服務器端使用一些東西。緩存是要走的路,如果你想分享數據的話,應用程序的所有客戶端。 –

+0

我在這裏找到了我所需要的:http://code.google.com/p/ajax-cache/wiki/HowTo - 這可能是代碼更改較少的最佳方式....我將調查.Net緩存選項以及 - 再次感謝。 – Max

相關問題