Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在本地存储器中保存本地映像或映像路径?_Javascript_Local Storage - Fatal编程技术网

Javascript 是否在本地存储器中保存本地映像或映像路径?

Javascript 是否在本地存储器中保存本地映像或映像路径?,javascript,local-storage,Javascript,Local Storage,我正在开发一个bookmarklet(由书签触发的Javascript),它将图像覆盖在网页上,以检查html是否与设计一致。(它使用不透明度) 我想按每个url保存参考图像。据我所知,我有三种选择: 将路径保存在cookie中 将路径保存在本地存储中 将映像保存在本地存储器中 我目前正计划使用本地存储来保存图像。其优点是,即使原始图像被删除,并且在chrome中的不同计算机之间同步,它也能工作。我不知道有什么犯人。在IE7中我不需要完美的像素,所以浏览器支持很好 最好的方法是什么?当然,您

我正在开发一个bookmarklet(由书签触发的Javascript),它将图像覆盖在网页上,以检查html是否与设计一致。(它使用不透明度)

我想按每个url保存参考图像。据我所知,我有三种选择:

  • 将路径保存在cookie中
  • 将路径保存在本地存储中
  • 将映像保存在本地存储器中
我目前正计划使用本地存储来保存图像。其优点是,即使原始图像被删除,并且在chrome中的不同计算机之间同步,它也能工作。我不知道有什么犯人。在IE7中我不需要完美的像素,所以浏览器支持很好


最好的方法是什么?

当然,您可以将图像和/或url保存到
localStorage

但是,由于
localStorage
只接受
string
,因此您需要首先将图像转换为
数据url
,或者从服务器提供图像,或者使用
canvas
(注意,canvas通常只能设置来自同一来源的图像,当然,如果没有polyfill,canvas在IE7中是不可用的)

更好的方法可能是使用
indexedDB
或新的
文件API
(目前支持较差,目前只有Chrome),它允许您请求较大的存储空间,并且可以直接保存图像(作为Blob)

图像将在您提供图像时存储(除非您在画布中使用jpeg重新缩放和压缩),因此像素化或质量降低不应成为问题

因此,在本例中,您需要恢复到
UserData
(限制为4MB IIRC)或带有url的cookie

虽然-

如果将原始图像保存在本地不是很重要,我建议在图像头中添加过期数据

通过这种方式,它会一直保留在缓存中,直到用户删除它或它过期。如果您对服务器的流量有限制,那么
localStorage
/
indexedDB
可能是更好的选择