如何将本地 Javascript 数据保存在具有回发的页面上,但在用户导航离开时将其清除?
How can I persist local Javascript data on a page with postbacks, but clear it when the user navigates away?
我在大型 ASP.NET 应用程序中有一个控件。该控件使用 AJAX 与服务器通信,并在本地存储非常大量的状态。使用此控件的所有页面都过度使用 ASP.NET post 后退。
我需要在 post 后保持控件的状态,但我需要在用户离开页面时通过浏览到另一个位置或执行 post 返回重定向。我无法将此状态发送到服务器并回显它。
目前,我正在使用 sessionStorage
,但它不满足用户离开页面时清除状态的要求。
作为警告,我对控件的使用者的控制为零。
我怎样才能做到这一点?这甚至可能吗?
我一般不推荐这样做,但以下实际上可能是您的最佳选择,因为您是在标准 WebForms 范例的严格范围内工作的。
你可以implement IScriptControl on your control and add AJAX functionality using Microsoft Ajax, or alternatively create an extender that extends your control with AJAX capabilities.
您需要将它与 UpdatePanel 结合使用,这样控件仍然可以 post 像往常一样返回并且 ViewState 机制保持不变,但是 post 返回变成异步通信服务器。任何控件数据(ViewState 或其他)都是 control/page 的本地数据,满足您在离开时清除数据的要求。
我在大型 ASP.NET 应用程序中有一个控件。该控件使用 AJAX 与服务器通信,并在本地存储非常大量的状态。使用此控件的所有页面都过度使用 ASP.NET post 后退。
我需要在 post 后保持控件的状态,但我需要在用户离开页面时通过浏览到另一个位置或执行 post 返回重定向。我无法将此状态发送到服务器并回显它。
目前,我正在使用 sessionStorage
,但它不满足用户离开页面时清除状态的要求。
作为警告,我对控件的使用者的控制为零。
我怎样才能做到这一点?这甚至可能吗?
我一般不推荐这样做,但以下实际上可能是您的最佳选择,因为您是在标准 WebForms 范例的严格范围内工作的。
你可以implement IScriptControl on your control and add AJAX functionality using Microsoft Ajax, or alternatively create an extender that extends your control with AJAX capabilities.
您需要将它与 UpdatePanel 结合使用,这样控件仍然可以 post 像往常一样返回并且 ViewState 机制保持不变,但是 post 返回变成异步通信服务器。任何控件数据(ViewState 或其他)都是 control/page 的本地数据,满足您在离开时清除数据的要求。