使用放大js和MVC时清除客户端缓存的位置

时间:2013-08-02 00:54:38

标签: asp.net-mvc-4 amplifyjs

我有一个MVC应用程序。我的页面采用了一些过滤条件,从服务器获取数据并对数据进行一些其他操作。要求是当页面加载时,不应该过滤数据,但是一旦用户输入一些过滤条件并执行任何操作,在Ajax调用和页面刷新时,都需要存储和应用过滤条件。 我正在使用amplify.js来存储用户选择的设置。 每当用户进行任何刷新/ Ajax调用时,我都会存储过滤条件。 在$ document.ready上,我再次应用过滤条件

问题是数据没有被清除。因此,当用户启动应用程序时,将应用筛选条件。 如果我清除$ document.ready中的条件,我也会丢失用户操作的数据。

那么,如何区分初始页面加载和后续刷新/重定向/ Ajax调用?

这是应用过滤器的代码。

var filterData = amplify.store.localStorage(filterKey) ? JSON.parse(amplify.store.localStorage(filterKey)) : defaultFilterData;
applyFilters(filterData);

存储filterData,

amplify.store.localStorage(filterKey, ko.mapping.toJSON(filterData));

初始加载时,我的意思是第一次启动应用程序时。因为我面临的问题是放大器存储数据,即使我关闭应用程序并重新启动..

1 个答案:

答案 0 :(得分:0)

我不知道您的应用程序是如何构建的,但根据您的问题,我想您可以设置一个Session变量,如果这是用户第一次访问您的页面,则清除localStorage。 TempData也适用于这种情况,因为您可以设置一个仅存在于第一个请求中的变量。

例如:

Session["firstRequest"] = true;

TempData["firstRequest"] = true;

您可以在Session_OnStart()事件或Controller中设置此变量。