存储ViewState在哪里?它存储在服务器还是客户端?ViewState存储在哪里?
我有一个庞大的数据,应该存储一些过程。我正在使用Session。但是当从一个页面移动到另一个时,我无法清除会话。所以我想到实现ViewState。但是,当运行大量的数据ViewState抛出错误?
我该如何解决这个问题?
存储ViewState在哪里?它存储在服务器还是客户端?ViewState存储在哪里?
我有一个庞大的数据,应该存储一些过程。我正在使用Session。但是当从一个页面移动到另一个时,我无法清除会话。所以我想到实现ViewState。但是,当运行大量的数据ViewState抛出错误?
我该如何解决这个问题?
Viewstate以自编码形式存储在页面上。您无法直接访问客户端的视图状态。您需要了解编码/解码算法以从客户端代码中的此视图状态获取有价值的数据。
您可以使用隐藏变量来存储将仅用于该页面的数据。隐藏的变量可以从客户端和服务器端代码访问。
您可以使用缓存或会话来存储数据表(大数据)。与ViewState相比,它们将具有良好的性能。
缓存是始终使用机器的内存,会话使用什么样已被配置:
在Web场会话可以是本地(其中只有亲和力设置有效),或远程(状态服务器或数据库或自定义),但缓存始终是本地的。
因此,将DataTable存储在缓存中会占用内存,但不会使用序列化。 PS:存储一个DataSet而不是一个DataTable将几乎没有改变。
阅读http://msdn.microsoft.com/en-us/library/bb386448.aspx和http://weblogs.asp.net/sreejukg/archive/2010/04/06/viewstatemode-in- asp-net-4-0.aspx –
“你不能访问客户端的视图状态。”事实上,你可以访问它,因为它没有被加密(默认)。但是,它不能更改,因为它包含一个将由ASP.NET验证的散列。 – Steven
@Steven,我同意你的意见,即我们可以访问viewstate,但访问它们并不会有用,因为我们将如何从viewstate变量中获取实际/解码值。 –
ViewState中不存储任何一方,它的来回发送服务器,并在每次请求和响应浏览器之间,所以它不是把一个庞大的数据量在ViewState中是个好主意。
保存视图状态下的大量数据会降低您的网站。 使用查询字符串从每个页面上的数据库获取新鲜副本,而不是保存上一页中的全部信息。
视图状态信息存储在隐藏的字段中。 信息在此隐藏字段中的服务器和客户端之间传输。
对于asp.net控件,..默认情况下,.net实现了所有控件的视图状态,这就是为什么当我们点击该页面的按钮时文本框的值不会丢失。
ViewState被存储在你告诉它的地方。默认情况下,它位于发送给客户端的页面上的隐藏字段中。
ASP.NET can also store ViewState inside the Session,即在服务器上,如果你告诉它。
您最好查看一下ASP.NET缓存,您可能会发现它适合您的需求。 –