首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【JS】1797- 使用 File System Access API 让浏览器拥有操作本地文件的能力

什么是 File System Access API File System Access API 是一项 Web API,允许 Web 应用程序从用户设备的本地文件系统中读取和写入文件。...它提供了一种简单且安全的方法,让用户在不离开 Web 应用的情况下,从本地文件系统中操作文件。 这项 API 为 Web 应用程序提供了更多的灵活性和功能,使其更接近于本地应用程序的体验。...File System Access API 遵循同源策略,只允许 Web 应用程序在具有相同源的文件系统上进行操作。 当用户使用该 API 时,会提示用户授权应用程序访问他们的文件系统。...使用 File System Access API 可以访问本地文件系统,从而实现一些有用的功能,例如: 将文件从本地文件系统上传到 Web 应用程序; 将 Web 应用程序中的数据写入到本地文件系统中...使用showDirectoryPicker方法时,浏览器会提示用户授权应用程序访问他们的文件系统,请不要拒绝哟。

1.4K41

Chrome 86 新功能解读

现在,使用文件系统访问 API,你可以调用 showOpenFilePicker(),会显示一个文件选择器,然后返回一个文件 picker,你可以用这个 picker 读取文件。...调用 showDirectoryPicker() 将打开一个目录,你可以获取文件列表或在该目录中创建新文件。这非常适合诸如IDE或与大量文件交互的媒体播放器之类的东西。...当然,在你写入内容之前,用户必须授予写入权限。 试用:WebHID 人机接口设备(Human interface devices)通常被称为 HID,它们从人那里获取输入或者向人提供输出。 ?...现在我们可以通过一些 JavaScript API 来访问这些设备,借助 WebHID API 我们可以充分利用游戏手柄,包括所有按钮,操纵杆,传感器,触发器,LED等。...在使用之前,要向用户申请权限。

91031
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浏览器缓存读取规则

    不管是从Memory Cache 中还是网络请求中的数据,浏览器都显示实在Service Worker中获取的 Memory Cache Memory Cache 内存缓存,主要包含当前页面已经抓取到的资源...是什么值,同时资源的匹配也并非仅仅对URL匹配,还会对content-type,Cors等特征做校验 Disk Cache Disk Cache 也是存储在硬盘中的缓存,读取速度慢点,但是都能存储在磁盘中...它会根据 HTTP Herder 中的字段判断哪些资源需要缓存,哪些资源可以不请求直接使用,哪些资源已经过期需要重新请求。...并且即使在跨站点的情况下,相同地址的资源一旦被硬盘缓存下来,就不会再次去请求数据。...它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂,在Chrome浏览器中只有5分钟左右,同时它也并非严格执行HTTP头中的缓存指令。

    71220

    【Vuejs】总结- Vue 存储插件的底层原理,你不知道的 localStorage API

    前言 当谈到 Web 应用的客户端存储时,localStorage API 脱颖而出,它允许开发者直接在浏览器中存储键值对。...字符串化开销:localStorage 存储 JSON 数据需要先对数据字符串化,且在检索时需要先解析。这个过程会带来性能开销,可能会使操作速度减慢高达 10 倍。...文件系统 API(OPFS) 另一个知识盲区是 OPFS(源私有文件系统)。这个 API 提供对基于源的沙盒文件系统的直接访问,该文件系统针对性能高度优化,并提供对其内容的就地写入访问。...然而,使用 OPFS API 可能十分复杂,而且能且仅能在 WebWorker 中访问。...要在 Bun 中本地存储数据,可以使用 bun:sqlite 模块。 总结 在现代 Web 开发领域,localStorage 是轻量级数据的存储神器,其简单性和速度使其成为迷你键值分配的最佳方案。

    19910

    前端性能优化(三)——浏览器九大缓存方法

    作为开发者,有时也需要检查一下缓存中的内容。所以介绍下缓存方法以及缓存内容在哪查找? 1、http 缓存 http缓存是存在于服务器与浏览器之间,是一种保存资源副本并在下次请求时直接使用该副本的技术。...3、indexDB indexDB 是为了能够在客户端存储客观数量的结构化数据,并且在这些数据上使用索引进行高性能的检索。...indexDB 分别为同步和异步访问提供了单独的API,同步API本打算供Web Worker内部使用,但目前还未实现。...异步API在Web Worker内部和外部都可以使用,另外浏览器对indexDB有50M大小限制。 indexDB主要特点有: indexDB大小取决于你的硬盘,存储的数据量非常大。...一次必须更新mainfest文件中的所有文件才能生效。 当网络断开时,可以继续访问页面。 文件缓存到本地,不需要每次都从网络上请求。 稳定性比较好,遇网络故障或服务器故障可以继续访问本地缓存。

    1.9K30

    前端性能优化(三)——浏览器九大缓存方法

    作为开发者,有时也需要检查一下缓存中的内容。所以介绍下缓存方法以及缓存内容在哪查找? 1、http 缓存 http缓存是存在于服务器与浏览器之间,是一种保存资源副本并在下次请求时直接使用该副本的技术。...3、indexDB indexDB 是为了能够在客户端存储客观数量的结构化数据,并且在这些数据上使用索引进行高性能的检索。...indexDB 分别为同步和异步访问提供了单独的API,同步API本打算供Web Worker内部使用,但目前还未实现。...异步API在Web Worker内部和外部都可以使用,另外浏览器对indexDB有50M大小限制。 indexDB主要特点有: indexDB大小取决于你的硬盘,存储的数据量非常大。...一次必须更新mainfest文件中的所有文件才能生效。 当网络断开时,可以继续访问页面。 文件缓存到本地,不需要每次都从网络上请求。 稳定性比较好,遇网络故障或服务器故障可以继续访问本地缓存。

    2.1K20

    前端性能优化(三)——浏览器九大缓存方法

    作为开发者,有时也需要检查一下缓存中的内容。所以介绍下缓存方法以及缓存内容在哪查找? 1、http 缓存 http缓存是存在于服务器与浏览器之间,是一种保存资源副本并在下次请求时直接使用该副本的技术。...3、indexDB indexDB 是为了能够在客户端存储客观数量的结构化数据,并且在这些数据上使用索引进行高性能的检索。...indexDB 分别为同步和异步访问提供了单独的API,同步API本打算供Web Worker内部使用,但目前还未实现。...异步API在Web Worker内部和外部都可以使用,另外浏览器对indexDB有50M大小限制。 indexDB主要特点有: indexDB大小取决于你的硬盘,存储的数据量非常大。...一次必须更新mainfest文件中的所有文件才能生效。 当网络断开时,可以继续访问页面。 文件缓存到本地,不需要每次都从网络上请求。 稳定性比较好,遇网络故障或服务器故障可以继续访问本地缓存。

    1.3K30

    google官方推荐的隐私最佳实践!

    仅在需要时(而不是在应用启动时)请求权限,以便用户清楚地了解您的应用需要的权限。...如果您的应用可以在不请求访问任何位置数据的情况下实现其用途,请勿请求位置权限。 如果您的应用需要通过蓝牙或 WLAN 将用户的设备与附近的设备配对,请使用不需要位置权限的配套设备管理器。...粗略位置信息访问权限足以满足大多数与位置相关的用途。 在用户进入应用界面时访问位置数据。这样,用户就能更好地了解您的应用为何请求获取位置信息。...您可以在 Android 的其中一个生命周期回调(例如 onPause())中执行此操作。 请勿在后台启动前台服务。您应考虑从通知中启动应用,然后在用户进入应用界面时执行位置代码。...在以 Android 10(API 级别 29)或更高版本为目标平台的应用中,如果您尝试访问这些标识符,会发生 `SecurityException`。 只针对用户分析或广告用例使用广告 ID。

    1.1K20

    放弃localStorage,拥抱IndexDB

    ,减少从服务器获取数据。...所以在这个前提下,我们就可以使用HTML5提供的新API,IndexDB! IndexedDB 具有以下特点。 (1)键值对储存。...可以看到大部分主流程的浏览器其实都已经兼容了indexDB了,那么我们只需要做一些简单的降级就可以了。 如何使用 IndexDB其实网上有很多教程,包括阮一峰老师的IndexDB入门或者直接看MDN。...在这里不就重复去说明了,如果你有用过mongoDB的话,那么也很好理解IndexDB的原理和使用。...一开始打算就用localStorage来解决的,但是发现在一些特定情况下,数据有可能达到接近5MB的数据,在PC的Chorme中是可以存到localStorage的,但是在IOS中,却报出空间不足,无法放入

    2.3K41

    Chrome 86 重要更新解读

    新增稳定功能 文件系统访问 还记得Chrome 83中的本地文件系统吗,当时的试验功能,现已稳定。...特别的是,调用 showDirectoryPicker 方法会打开文件目录,允许你获取多个文件,或者在目录中创建文件。这很适合IDE、媒体播放器等应用。...更醒目的 HTTP 安全警告 在我们访问 HTTPS 网页时,地址栏最左侧会显示一个锁定图标来表明当前网站是安全的,但如果 HTTPS 网页中嵌入的是并不安全的 HTTP 表单,浏览器则不会给出任何提示信息...后台标签页更省电 如果一个标签页在后台运行了五分钟以上,这个页面就会被暂时冻结,相应的 CPU 使用也会被限制在 1% 左右;如果页面支持自动刷新,唤醒时间被限制在每一分钟一次。...更多详情请移步https://web.dev/hid/ 多屏 Placement API 目前,你可以调用 window.screen() 来获取浏览器所在屏幕,但如果你有多个屏幕,只能获取当前所在的屏幕

    1.7K20

    前沿研究 | 容器逃逸即集群管理员?你的集群真的安全吗?

    当有节点加入集群时,DaemonSet会为它们新增一个Pod,当节点从集群中移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod。...sa在创建时,会在同一命名空间下生成一个与之关联的Secret资源,Secret存储认证所需的token、ca.crt等内容。...pods 中间人:有权拦截通信流量,如create endpointslices 六、攻击案例 下面将以CNI插件Cilium为例,介绍攻击者在容器逃逸之后,如何利用高权限的Pod从工作节点获取集群管理员权限...第二步:窃取凭证 当Operator可控时,同样可以通过文件系统或进入容器的方式获取Operator的sa。...攻击者在获取到拥有get、create node/proxy权限的secret值后,若能访问到master节点上的Kubelet API,便可以直接与其通信,获取到API Server的凭证,从而控制整个集群

    1.2K20

    Android教程-保存数据-保存文件

    本节课描述了如何使用 File API在Android文件系统中读写文件. File 对象适用于用一种没有跳跃的从开始一直到结尾的方式读写大量数据....本课程展示了如何在 你的应用中进行文件相关的基础操作. 本课程假定你熟悉Linux文件系统,还有java.io中的标准文件输入/输出操作....一些设备将永久存储空间分成“内部”和“外部”分区, 因此即使没有可移除的存储介质,也总会两个存储空间,而不管外部存储是不是可移除的,API行为都是一样的....当用户卸载你的应用时,系统会从内部存储中移除你的应用的所有文件. 当你想要确保不管是你的用户还是其它应用都能访问你的文件,内部存储是最合适的....这些方法分别提供了存储卷中当前有多少可用空间以及总空间. 这种信息在避免填充的数据量超过一定的阈值时也同样有用 .

    2.7K30

    【前端监控】离线日志

    前端监控系列,SDK,服务、存储 ,会全部总结一遍,写文不易,点个赞吧 离线日志,一般指的是用户离线时产生的日志。 离线日志的作用主要有两点 第一,保证日志完整性。...简介 在上面中,大概两个主要操作 1、存数据 2、打包数据成 zip 存数据使用 indexDB,而 打包数据成zip,我们则会使用 JSZip 库 下面就来简单介绍下这两个东西 1indexDB 浏览器提供的本地数据库...网页只能访问自身域名下的indexdb,无法跨域访问 4、存储空间大。...需要在上面返回的实例中监听 onupgradeneeded 事件,该事件只有在新建数据库的时候才会触发 dbRequest.onupgradeneeded = (e) => { const db...连接数据库返回的实例中。

    1.7K40

    浏览器中存储访问令牌的最佳实践

    更常见的是,web应用程序逻辑在浏览器中运行。 与从服务器获取所有内容不同,应用程序在浏览器中运行JavaScript,从后端API获取数据,并相应地更新web应用程序呈现。...出于可用性原因,JavaScript应用程序通常不会按需请求访问令牌,而是存储它。 问题是,如何在JavaScript中获取这样的访问令牌?...时,它都会从存储中获取令牌并手动添加到请求中。...请注意,本地存储中的数据会永久存储,这意味着存储在其中的任何令牌会驻留在用户的设备(笔记本电脑、电脑、手机或其他设备)的文件系统上,即使浏览器关闭后也可以被其他应用程序访问。...内存 存储令牌的一个相当安全的方法是将其保存在内存中。与其他方法相比,令牌不存储在文件系统中,从而减轻了与设备文件系统相关的风险。 最佳实践建议在内存中存储令牌时将其保存在闭包中。

    26610

    【HTTP】请求“报头”,Referer 和 Cookie

    当你在 sogou 页面进行搜索时,新进入的网页就会有 referer 有一个非常典型的用途:广告中 在搜索广告中,都是按照点击计费的,双方都要进行次数统计 一个公司可能会在很多平台上投放广告,要知道这个点击是从哪个平台上来的...浏览器退而求其次,给网页提供了这样的 API,能够有限度(按照键值对的格式)的存储数据,而不能随意访问文件系统 Cookie 的作用 Cookie 就是这样的一种存储机制,还有 LocalStorage...Cookie 从哪里来 服务器返回给浏览器的,通常都是首次访问/登陆成功之后 2. Cookie 到哪里去? Cookie 会存储在浏览器本地主机的硬盘上,后续每次访问服务器都会带上 Cookie。...即使是一个主机,使用不同的浏览器,Cookie 大概率也不同 3. Cookie 中存什么? 键值对格式的数据。这里的内容都是程序员自定义的,和 query string 一样,外人无法知晓。...Cookie 在浏览器这边如何组织? 在硬盘本地保存,是按照不同的域名为维度分别存储。你的浏览器访问百度,有一组 Cookie;访问搜狗,也有一组 Cookie。

    13110

    【网络原理】——HTTP请求头中的属性

    (1)引入 浏览器作为电脑上的一个程序,可以通过调用操作系统中相关文件的API,来读写本地磁盘文件,但是为了避免黑客做出来恶意网页攻击电脑,网页一般是被禁止读写访问操作的。...但是像有些需要登录操作的网页就需要储存(读写)信息了,所以浏览器退而求其次,给网页提供这样的API——可以有限度的存储数据,但是不能随意的访问文件系统——常见的像Cookie,LocalStorage,...IndexDB. (2)Cookie有关结论 ①Cookie从哪来 第一次访问浏览器(首次登录/访问成功后),服务器返回给浏览器的。...②Cookie到哪去 Cookie会存储在浏览器本地主机的硬盘中,后续每次访问服务器都会带上Cookie。...不同的客户端,保存的Cookie也是不同的——即使是同一个主机使用不同的浏览器在登录页面操作,Cookie也不同 ③Cookie中存什么 键值对的数据,程序员自定义 ④Cookie如何组织 在硬盘本地保存

    13810

    iPaste 产品设计

    操作区域的数据来源是系统粘贴板,如截图,如ctrl+c选中的文本,支持的类型有文本,图片,富文本,鼠标放到一个粘贴项时,透明显示复制,查看,删除三个操作图标,查看时可以添加备注.在操作区域的顶部需要有个筛选和登录按钮...使用indexDB存储用户的粘贴板数据,登录后点击同步按钮,同步到服务器....该产品尽量使用图标,一是避免国际化的麻烦,而是为了语义化更强.少占用空间.难点在于接管系统的粘贴板数据,有可能获取不到历史粘贴板数据,只能获取最新的.不过浏览器插件的话应该有更高的权限说不定可以获取的到...已做过研究,在Chrome浏览中可以拿到粘贴板的数据,但限制是,只能在用户按下ctrl+v是 并且只能拿到最新的一个....第一个必须用户按下Ctrl+v应该比较好解决,但能否拿到全部的粘贴板数据,这个应该我估计是不可以的,从安全考虑和从js的本身的能力限制.一个运行在客户端的脚本,是不能直接访问系统内存的.

    83020

    Web前端性能优化(三)

    LocalStorage 进行代替因为 Cookie 能够被 JS 进行读写,我们客户端存储的 Cookie 信息很容易被黑客获取,所以我们一般会对 Cookie 设置 HttpOnly 参数,让其只能进行...,而 IndexDB 是一种低级 API,用于客户端存储大量结构化数据,该 API 使用索引来实现对该数据的高性能搜索,在网络状态不好,无法获取数据库数据时,为应用创建离线版本function openDB...,这是一个渐进式的 Web App,是通过一系列新的 Web 特性,配合优秀的 UI 交互设计,逐步的增强 Web App 的用户体验PWA 的主要特点包括下面三点:可靠 - 即使在不稳定的网络环境下,...> 替代 Expires,当 Expires 与 Cache-Control 同时存在时,Cache-Control 的优先级要高于 Expires在 HTTP 中 Last-Modified 与 If-Modified-Since...Etag 是服务器端在响应请求时用来说明资源在服务器端的唯一标识,与之对应的是 If-None-Match 字段,在服务器再验证过程中,浏览器发送的 HTTP 请求的请求头中会带上 If-Modified-Since

    68530

    IndexedDB 打造靠谱 Web 离线数据库

    参考: 版本更替 版本更新 这个在 IndexDB 是一个很重要的问题。主要原因在于 indexedDB API 中不允许数据库中的数据仓库在同一版本中发生变化....这时,IndexDB 成功更新为高版本。但是,用户下次又命中了老版本的 A 页面,此时 A 中还是连接低版本的 IndexDB ,就会报错,导致你访问失败。...存储加密特性 有时候,我们存储时,想得到一个由一串 String 生成的 hash key,那在 Web 上应该如何实现呢?...比如,在 [代码3] 中,我们改变默认的 cursor 遍历数据的方向为 prev,从末尾开始。...在 OS 中,创建一个 key 可以使用 key generator 和 key path。 key generator: 简单来说就是在存储数据时,主动生成一个 id++ 来区分每条记录。

    3.1K30

    JavaScript IndexedDB 完整指南

    幸运的是,有几种关于如何在浏览器中存储数据的工具,可以在线和离线访问数据。 1....浏览器存储方式 关于如何在浏览器中存储数据,Web 标准提供了三个主要 API: Cookies:此数据存储在浏览器中,Cookies 的大小限制为 4k。...IndexedDB:一个内置在浏览器中的完整文档数据库,没有存储限制,它允许你异步访问数据,这对于防止复杂操作阻塞呈现和其他活动非常有效。这就是我们将在下面深入讨论的内容。...onsuccess 中,我们做了以下几点: 获取数据库连接 创建事务 指定我们在哪个存储上进行事务处理 运行一个 getAll 查询来获取存储中的所有文档 / 记录 在查询特定的 onsuccess 事件中...添加一些 todo,当你刷新页面时,你将看到 todo 持续存在。它们也会显示在查询结果的 console.log 中,每个 todo 都有一个唯一的 ID。到目前为止,完整的代码应该如下所示: <!

    1.9K20
    领券