如何在具有回发的页面上保留本地Javascript数据,但在用户导航时将其清除?

时间:2015-04-20 21:07:52

标签: javascript asp.net session-storage

我在一个大型ASP.NET应用程序中有一个控件。该控件使用AJAX与服务器通信,并在本地存储大量的状态。所有使用此控件的页面都会过度使用ASP.NET回发。

我需要在回发后保持控件的状态,但是当用户离开页面时,我需要通过浏览到另一个位置或执行重定向的回发来消除状态。我无法将此状态发送到服务器并回显它。

目前,我正在使用sessionStorage,但如果用户离开页面,则无法满足要求消除状态的要求。

作为警告,我无法控制控件的使用者。

我怎样才能做到这一点?这甚至可能吗?

1 个答案:

答案 0 :(得分:0)

我一般不推荐这样做,但由于您在标准WebForms范例的严格限制范围内工作,因此以下实际上可能是您的最佳选择。

您可implement IScriptControl on your control and add AJAX functionality using Microsoft Ajax,或create an extender that extends your control with AJAX capabilities

您将希望将此与UpdatePanel结合使用,因此控件仍可照常回发,并且ViewState机制保持不变,但回发将成为与服务器的异步通信。任何控制数据,ViewState或其他,都是控件/页面的本地数据,满足您在导航时清除数据的要求。