C# ASP.NET生命周期在数据加载方面的最佳实践?
我有一个关于ASP.NET和C加载数据的最佳实践的问题# 作为概述,我们有一个web页面,它使用支持web服务来获取相当大的XML文件。然后将该文件转换为客户端JavaScript以用于加载ListViewC# ASP.NET生命周期在数据加载方面的最佳实践?,c#,asp.net,lifecycle,C#,Asp.net,Lifecycle,我有一个关于ASP.NET和C加载数据的最佳实践的问题# 作为概述,我们有一个web页面,它使用支持web服务来获取相当大的XML文件。然后将该文件转换为客户端JavaScript以用于加载ListView protected string clientSideJavaScripts; protected void Page_Init(object sender, EventArgs e) { // code goes here to submit a request and rece
protected string clientSideJavaScripts;
protected void Page_Init(object sender, EventArgs e)
{
// code goes here to submit a request and receive an XML Response from the web service
// code goes here to set clientSideJavaScripts = translated Java Script from the XML Document
// other code goes here
}
ASP文件包含以下内容:
<head>
<title></title>
<script type="text/javascript>
<%=clientSideJavaScripts%>
</scrpit>
</head>
...
然而,这样做的结果是服务器端字符串'clientSideJavaScripts'不再被实例化,因此在tje第一次回发之后,客户端不再获得所需的javascript
我确信,在这种情况下,我缺少了一种明显的(可能是常见的)方法来处理javascript的持久性,但我不知道这一点,因此我正在寻求任何人的建议。确保Web服务只被调用一次的最佳实践是什么
我也在使用AJAX和JQuery Mobile,如果这有什么不同的话
如有任何建议,将不胜感激。
非常感谢如果我理解正确,您可以将webservice调用的结果添加到会话中(如果有大量数据,则不建议这样做),也可以将其插入缓存中(类似于
cache.insert(…)
)。第三种选择可能是,一旦从Web服务检索到它,就以某种方式将其存储在数据库中,对于后续调用,则从数据库中获取它(可能在会话结束后进行清理)。尝试跟踪您对页面的调用,以验证调用的内容和未调用的内容(您也可以使用Fiddler)。您是说不希望在回发中加载JavaScript吗?我认为您需要在每个页面请求中加载它(不确定这是否是您所要求的)。我只需要在有人第一次登陆页面时加载javascript(通过webservice)。在那之后,我希望它在回发过程中保持持久性,而不是在每次回调时都访问Web服务。我将调查我上面所说的,它可能会起作用,但您应该尽量避免在会话中放入大量数据。
protected string clientSideJavaScripts;
protected void Page_Init(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// code goes here to submit a request and receive an XML Response from the web service
// code goes here to set clientSideJavaScripts = translated Java Script from the XML Document
}
// other code goes here
}