问题标签 [state-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET 服务器如何知道会话何时终止?
我了解 Session 对象用于存储每个会话的数据。我做了以下实验:
- 打开浏览器并访问一个 aspx 页面 A,其中保存了一些数据到 Session 对象。
- 保持浏览器打开并打开另一个选项卡以访问显示会话数据的 aspx 页面 B。它显示的就像我在步骤 1 中存储的一样。
- 我关闭浏览器并重新访问页面B,存储的数据消失了。
从 3 开始,服务器端似乎以某种方式检测到我(客户端)已经终止了会话。但是当我检查 Fiddler 时,当我在步骤 3 中关闭浏览器时,没有任何位发送到服务器。
那么 ASP.NET 应用程序怎么可能知道我的第 3 步请求是针对新会话的呢?
以及如何定义会话?不同的选项卡是否总是属于同一个会话?
加 1
虽然会话数据可以显示在页面 A 和页面 B 中,但它们显示的会话 ID 是不同的。为什么?
正确的
页面 A 和页面 B 中的会话 id 相同。我没有使用 InPrivate 浏览。
添加 2
会话 ID 确实有一个 Cookie:
它是在响应 POST 请求时设置的。
所以我做了另一个实验,我关闭了浏览器(Fire Fox),正如预期的那样,Cookie 不再存在。我手动创建了 cookie,希望“伪造的 Cookie 可以恢复旧会话。 ”但 Fiddler 表示手动 cookie 根本没有发送。
提琴手 说:
那么是否可以伪造 cookie 并恢复之前的会话?
会话在服务器上存在多长时间?
ajax - 在这种情况下什么更好?ViewBag 或 TempData 或 Session?
我创建了新闻网站MVC
。我有搜索功能。
当Index
Action
ofSearch
Controller
被调用时,它从 获取记录database
,它返回Search View.
This Search View has AJAX Pager
for paging,当点击 Pager 的 Next 或 Previous 按钮时,向ofAJAX
发出请求。Paging Action
Search Controller
现在我不想再打电话给我的Database
. 我想使用在 of 期间获取Index action
的结果Search Controller
。
现在我已经使用了Session[""]
对象。
我想知道在这种情况下什么更适合用于状态管理。
从数据库中获取的结果可能在 1000-5000 左右ArticleName
,,ArticleShortDescription
(约 200 个字符)
c# - 个人页面上的状态管理建议
我遇到了一个问题,可能是我的方法或 asp.net 网络表单技术的限制。该解决方案的主要驱动因素是一个简单的事实,即当用户长时间坐在单个页面上时,他们会被重定向到我们的 CAS 服务器并返回到页面本身,这会导致所有表单输入都被清除,就好像用户没有输入任何信息(即丢失 ViewState/control 状态)。话虽如此,我正在探索其他选择,例如:
- 使用 HTML localStorage 存储页面上所有值的 JSON 字符串,如果需要,可以将其解析为对象并稍后加载到表单中。
尽管此解决方案允许我将每个页面上的值存储在单独的键/值对中(localStorage[ID1] 中的页面实例 1、localStorage[ID2] 中的页面实例 2 等),但服务器端仍然存在限制验证用户正在保存哪个页面。现在我正在使用会话来维护用户正在查看的表单,即。用户仅与 1 个页面相关联。继续这个例子,会话信息将导致用户与 localStorage[ID1] 或 localStorage[ID2] 相关联,而不是两者——这正是我的问题。我需要从客户端通信要保存哪一页。我探索了以下选项,并提出了以下问题:
- 一个静态类,包含服务器端的静态对象集合,存储哪些用户打开了哪些页面-> 问题:传达实际保存的是哪个页面。
- 使用包含手头页面标识符的加密版本的 ID 动态呈现我的保存按钮。
- 将正在编辑的当前值存储在查询字符串中
- 一个 cookie 值,用于存储用户希望在回发时更改的 ID 值——> cookie 如何获得它的值——尤其是当一个 ID 是新的时(用户第一次填写表单)?
我可能过于复杂了,我知道有一种更简单的方法。
c# - 空闲超时总是应该大于会话超时?
我在asp.net c#中有一个项目。我没有使用表单身份验证。我有简单的登录页面。当用户成功登录时,用户重定向到仪表板并生成会话[“用户”]。但问题是当用户不使用网站 20 分钟或超过 20 分钟,当用户回来尝试使用它。会话已过期。用户重定向到再次登录页面。我也在 web.config 文件中使用以下脚本
这是因为空闲超时还是不是因为我的空闲超时是 20 分钟。空闲超时是否总是应该大于会话超时?我希望会话存活 8 到 9 小时或最大值,或者用户不要按下注销按钮
asp.net - 为什么使用 AJAXFileUpload 部分回发时 ViewState 和控制值丢失?
我有一个.aspx
包含打开popup
按钮单击的按钮的页面。弹出窗口有AJAXFileUpload
控制权。单击按钮打开弹出窗口时,session
会将值发送到弹出窗口,并将page load
这些session
值分配给ViewState
和HiddenField
,DataTable
。
问题:
当我click
在Upload
弹出窗口中的按钮上包含AjaxFileUpload
它时,会将图像保存到AJAXUploadComplete
event
. 在这种情况下,我无法访问ViewState,HiddenField and DataTable
值不知道为什么?
弹出窗口.aspx.cs
注意:相同的功能在页面上运行良好。但是,与弹出窗口一起使用时,它HiddenField,DataTable,ViewState.
Session
会在弹出窗口打开后刷新所有不能用于存储数据的值,因为一次可能会打开多个窗口实例。
此外,当query string
与 Popup 一起使用以发送值时,会在附加contextkey 和 guidAjaxFileUpload
时给出错误。its own querystring
请提出任何解决方案/更改?
asp.net - 进程外会话状态停止工作?
我有一个购物车,我希望购物车中的产品即使在应用程序关闭并重新启动时也能保留。我设置了进程外会话状态,它确实有效(一段时间)。
我没有对我的应用程序或 sqlserver 进行任何更改,但是现在当我测试我的购物车时(大约一个小时后),当我关闭浏览器或重新启动应用程序时数据不再存在。
我的 ASP.Net State 服务仍在运行,我的类设置为 [serializable],没有任何改变。
以下是我在 web.config 中配置会话状态的方式
有没有人遇到过这个问题(或知道解决方案),其中进程外会话状态在前几个测试中有效(数据正确保留),但后来随机停止工作?
c# - Asp.Net ViewState 性能
我是 Asp.Net 的新手。我有一个关于视图状态控件的问题。Msdn 说它是作为客户端状态管理,但建议如果页面上有大数据,因为性能问题可以禁用它。
那么,如果这是客户端状态,它会如何影响网站的页面加载时间呢?
android - 由于上下文为 NULL,单例状态不可访问
我们正面临 Android 应用程序的问题。有一个名为 SingleTon 的类扩展了应用程序,我们将它用于状态管理器。当应用程序在后台运行时,如果我打开推送通知,我无法访问 Singleton 类,因为上下文是null,这就是应用程序崩溃的原因。如果应用程序处于待机模式,也会发生同样的事情。在这里,我提到了我的 SingleTon 类代码:
公共类 StateManager 扩展应用程序 {
public String FirstName;
c# - 保存视图状态和加载视图状态中的问题
创建了自定义服务器控件
尝试将属性存储在视图状态但在回发时我无法获取先前存储在状态中的值。以下是代码
在第一页加载值被添加到视图状态如果任何回发将发生值应该是可用的,现在没有发生任何可以帮助我