Javascript 完全放弃服务器端脚本编写而写入文件?

Javascript 完全放弃服务器端脚本编写而写入文件?,javascript,file-io,Javascript,File Io,不久前,我决定为我们的公寓做一份清洁名册。作为我们这些懒惰的混蛋,我用标准HTML5/JavaScript拼凑了一个半自动化的,并计划强制所有人将其设置为主页。基本上,我显示的是一个SVG平面图,其中的房间根据某些任务被忽略的时间进行颜色编码。当然,用户将能够更新任务首选项和状态 现在我差不多完成了,唯一缺少的就是用更新的数据覆盖JSON文件(与HTML/JS位于同一目录中)。这就是我的麻烦所在 你看,花名册将存储在一个硬盘上,因此可以通过NetBIOS/SMB从插入路由器USB端口的硬盘访问。

不久前,我决定为我们的公寓做一份清洁名册。作为我们这些懒惰的混蛋,我用标准HTML5/JavaScript拼凑了一个半自动化的,并计划强制所有人将其设置为主页。基本上,我显示的是一个SVG平面图,其中的房间根据某些任务被忽略的时间进行颜色编码。当然,用户将能够更新任务首选项和状态

现在我差不多完成了,唯一缺少的就是用更新的数据覆盖JSON文件(与HTML/JS位于同一目录中)。这就是我的麻烦所在

你看,花名册将存储在一个硬盘上,因此可以通过NetBIOS/SMB从插入路由器USB端口的硬盘访问。因此,我无法访问服务器端脚本,因为不会涉及服务器。我也没有固定的浏览器,甚至没有操作系统

这是可能的吗还是我应该抛弃它,使用Python

提前感谢。:-)


TL;DR:只需浏览斜体部分即可

是的,通过使用
Blob
对象或数据URI,可以在所有最新浏览器中实现这一点。对于旧版本的IE,因为您只保存一个文本文件(JSON文件),所以您很幸运:有一个库可以使用BLOB或数据URI保存文件,它也有IE的后备功能:

仅供参考,如果您需要保存文本文件以外的内容,则必须使用Flash或Java等插件。这里有一个图书馆可以做到这一点:

下面是有关客户端文件生成和下载的各种选项的概述:

仅供参考,这里有一个用于在客户端生成zip文件的库:

您可以使用Firebase,纯客户端完成此操作

有 . (最后一个是有角度的。)


因为您的数据是JSON格式的,所以我首先要开始的是他们的教程中写入的部分。

人们是否通过http或映射文件通过路由器url访问页面://?您是否考虑过在github页面上托管,这样您就可以说“固定浏览器/OS”?否则,您的问题似乎是问如何使用标准HTML5/JavaScript访问路由器的硬盘。@Sze HungDanielTsui老实说,我更希望没有关于我们如何进行清理的实际数据离开扁平共享的网络(不深入细节,让我们说这对我们来说是一个微妙的问题)。否则,我可能会把整个东西放在我的Web空间中,在那里我可以只使用PHP。保存客户端不会帮助您。要保存服务器端,服务器需要支持某种形式的写请求。您的服务器不支持任何类型的写入。因此:不太可能。我认为如果安全很重要,@Adam的建议可能是你最好的选择。我所知道的唯一其他选择是设置本地服务器或将文件保存到远程服务器……如果使用远程服务器,则需要提示用户提供身份验证凭据,以确保其安全(显然,您不希望将用户名和密码放在JS文件中).谁投了反对票?为什么?我不知道。也许是OP以外的人?我可以想出两个选择。1.听起来他们需要自动更新或完全替换现有JSON文件的内容。您链接到的工具似乎只是提供一个文件供下载,因此用户必须手动将其保存在现有文件上(这可能是他们愿意做出的妥协)。2.这本质上可以归结为一个只包含链接的答案,你说使用这个插件,但不要解释为什么它解决了他们的问题,或者如何使用它来解决问题。@MattBrowne我没有否决任何东西,但Anthony是正确的,我会替换JSON文件,而不是提供下载。遗憾的是,除此之外,它本来是完美的。有没有可能将文件或数据存储在云中?在这种情况下,您可以使用@Sze Hung建议的Firebase或任何其他云选项……来澄清:如果您的应用程序状态存储在JSON中,我会找到一种方法将其转换并保存在Firebase中。它非常无痛。当您修改存储对象时,JSON将自动更新。JSON不是强制性的,我只是决定尝试一下,以获得经验(我对XML有点厌倦)。虽然Firebase似乎不仅可以解决我的问题,还可以阻止我尚未开始解决的其他问题,我希望数据保持在本地。如果我理解正确,Firebase没有这个选项?据我所知,Firebase没有这个选项。