Asp.net 在ajax调用之后,数据表的寿命是多少?
我正在对我的服务器端c#进行jquery ajax调用。c代码填充数据表,然后使用Asp.net 在ajax调用之后,数据表的寿命是多少?,asp.net,jquery,lifecycle,Asp.net,Jquery,Lifecycle,我正在对我的服务器端c#进行jquery ajax调用。c代码填充数据表,然后使用JavaScriptSerializer将数据发送到aspx页面: datatable已初始化为公共表: public partial class _Default : System.Web.UI.Page { DataTable myDataTable = new DataTable(); protected void Page_Load(object sender, EventA
JavaScriptSerializer
将数据发送到aspx页面:
datatable已初始化为公共表:
public partial class _Default : System.Web.UI.Page
{
DataTable myDataTable = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//SqlDataReader builds loads data into dataTable...
HttpContext.Current.Response.Write(serializer(dataTable));
}
aspx页面最终通过将数据发布回aspx页面来从数据创建一个表。
我的下一个任务是在单击表标题时对行进行升序/降序排序(使用另一个ajax调用)
我想执行与此问题中接受的答案类似的排序操作:
初始ajax调用中的datatable是否仍在内存中?
谢谢。不,数据表将不再在备忘录中。每次创建请求时,都会创建一个新的
\u Default
实例。在处理请求后,它将被销毁
如果希望数据表保留在内存中,则应将其保存在缓存或应用程序对象中(
HttpContext.Current.Cache
/HttpContext.Current.Application
) 我创建了第二个ajax调用来对数据表进行排序,但令我沮丧的是,最初的数据表已不在内存中。这是asp.net,不是ClassicTanks Kenneth,我在一些测试中发现了这一点。一些测试花费了我准备问题的时间;-)。我最后做的是将表存储在会话变量中:session[“dtSession”]=dataTableName到目前为止,代码>似乎工作正常,除了在调试模式下,我注意到如果我离开10-15分钟,变量变为MIAYes,这是因为会话超时。你无论如何都会得到这个,因为一段时间后(标准的20分钟),应用程序池会回收,你将失去所有状态。为了安全起见,您需要执行空检查,并在未加载时加载它