Javascript Web客户端缓存

Javascript Web客户端缓存,javascript,flash,caching,local-storage,Javascript,Flash,Caching,Local Storage,我们正在构建基于web的音频编辑器的概念模型。我们遇到的第一个问题是客户端缓存系统。在我看来,作为服务器端程序员,在客户端拥有巨大的缓存是一个完美的想法,因为在许多情况下,除了多次加载相同的数据外,它需要占用服务器负载。此外,这样的缓存可以很好地作为缓冲区,用于提供每道操作,如过滤 我们的flex程序员说这是一个很大的麻烦,几乎在任何情况下都是不可能的。但我非常怀疑,因为我知道实际的Google Chrome浏览器版本可以在本地存储中保持高达2GB的存储空间。此外,我还发现了一个在线轨迹编辑器,

我们正在构建基于web的音频编辑器的概念模型。我们遇到的第一个问题是客户端缓存系统。在我看来,作为服务器端程序员,在客户端拥有巨大的缓存是一个完美的想法,因为在许多情况下,除了多次加载相同的数据外,它需要占用服务器负载。此外,这样的缓存可以很好地作为缓冲区,用于提供每道操作,如过滤

我们的flex程序员说这是一个很大的麻烦,几乎在任何情况下都是不可能的。但我非常怀疑,因为我知道实际的Google Chrome浏览器版本可以在本地存储中保持高达2GB的存储空间。此外,我还发现了一个在线轨迹编辑器,看起来它的缓存机制运行得很好


是否可以使用flash和js在客户端缓存一些数据(smth约100-200mb)?

您可以使用SharedObject存储数据

我很确定默认大小限制对于您的需求来说太低了,所以您的应用程序需要请求用户接受您的新限制:


SharedObject比浏览器缓存更可靠,您可以从应用程序控制它。

如果您使用的是html5,那么您可以使用


另请参考我们在编写视频编辑器时所做的操作。事实上,在Flash中,你可以将文件保存到用户的机器上,但必须对用户透明(即,用户启动操作,通过操作系统对话框并保存文件,就像他们通常保存下载的任何内容一样),同样,你可以从用户的计算机加载文件,限制用户必须启动操作(如使用定点设备单击或按键)

与不同的本地存储策略相比,这种策略有一定的优势,这些策略对用户来说大多是不透明的(人们通常不知道如何删除Cookie、SharedObjects或更现代浏览器附带的web存储,但他们几乎能够保存和删除系统上的文件)。此外,所有其他不透明的本地存储可能有一些限制,不太精明的用户可能不知道如何克服/通常不可能克服这些限制-这些限制包括大小、位置和所有权

这对您的读者来说仍然是一个障碍,因为每次他们需要保存文件时,他们都必须通过操作系统的对话框,而不是执行Ctrl+s/Cmd+s/C-x C-s。。。但考虑到所有其他选项,IMO认为这会让用户有最多的选择/提供最佳体验


另一个建议——原则上,你可以提出一个基于浏览器的“增强”版本的应用程序,用户可以将其作为浏览器插件安装(如果这是他们经常使用的编辑器,为什么不呢?),在这种情况下,你不会局限于web技术提供的笨拙选项。基于Chrome和Mozilla的浏览器鼓励这样的开发,但它不是标准化的。尽管如此,由于这两种浏览器几乎可以在任何操作系统上运行,这听起来并不特别像是将用户锁定到某个平台上……

这在很大程度上取决于浏览器(一些浏览器要求获得更多存储的权限,但另一些浏览器干脆失败)。因此,依赖它不是一个好主意。最大大小是否有任何限制?如果他们同意授予您“无限”存储空间,则没有限制(或多或少)。