Javascript或Jquery存储项目集合

时间:2013-02-28 07:44:14

标签: javascript jquery asp.net-mvc asp.net-mvc-4

在我的MVC网络应用程序中,我有一个功能,我需要存储几种不同类型的操作和一个键值对。

例如: 有一个链接:

<a class="downloadIcon" ajax-data-type="download" ajax-machineId="23" ajax-packageId="2343M324HDFHD">Download</a>

当有人点击上面的链接时,会启动下载并隐藏或删除下载链接。下载完成后,将为“安装”选项创建新链接以代替下载图标。像这样:

<a class="installIcon" ajax-data-type="install" ajax-machineId="23" ajax-packageId="2343M324HDFHD">Install</a>

所以我必须记住以下内容:

ajax-data-type => Download, Install, Uninstlall, Enable, Disable
ajax-data-machineId => int
ajax-data-packageId => int

此功能将确保(例如)下载“下载”但未完成,并且用户刷新他/她的浏览器时,下载链接将不会再次显示(因为下载已经启动)。但是一旦安装(该功能已经完成并且我从服务器获得响应)然后再卸载我将不得不再次显示“下载”链接等。

我会为此使用cookie吗?任何想法,帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:0)

如果您更改html,如下所示

<a class="installIcon" data-ajax-type="install" data-ajax-machineId="23" data-ajax-packageId="2343M324HDFHD">Install</a>

您可以使用$("a.installIcon").data("ajax-type")之类的内容来获取所需的数据。 您还可以更改$("a.installIcon").data("ajax-type","Disable")

等每个数据的值

答案 1 :(得分:0)

您可以将localStorage用于此类事情。

http://www.w3schools.com/html/html5_webstorage.asp

基本上,您只需将变量添加到localStorage,它就会将其保存以供将来访问。

所以,例如:

下载时:localStorage.state = 'downloading'

完成后:localStorage.state = 'done'

页面加载

if(localStorage.state)
    $(".downloadIcon").hide()
if(localStorage.state == 'done')
    $(".installIcon").show()