Javascript或Jquery存储项目集合

Javascript or Jquery store collection of items

本文关键字:项目 集合 存储 Jquery Javascript      更新时间:2023-09-26

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

例如

:有一个链接:

<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吗?如有任何意见或帮助,不胜感激。

谢谢

您可以使用localStorage。

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

基本上,您可以将变量添加到localStorage,它将保存它们以供将来访问。

例如:

下载:localStorage.state = 'downloading'

On done: localStorage.state = 'done'

on page load:

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

如果像下面这样修改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")