2014-02-18 19 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

相关问题