大佬们,如何在没有服务器数据库的情况下,做到增删改查

2023-01-12 10:32:05 +08:00
 OkabeRintaro

--前端菜鸟一枚,不懂后端,最近写了个背单词的表格网页,可以打钩打叉,记录自己哪里记住了没有
然后,把这个网页托管在了 github 上面

--现在想实现这样一个功能,我在 A 电脑背诵完了做好了记录,我想在 B 电脑打开这个网页,能够同步我上次的背单词打钩打叉记录,并且有保存上传新的数据记录的功能

--我没有服务器 /数据库,请问有什么路子能够做到这个吗?

--或者线上的 fastMock 、EasyMock 能够做到 [我上传新数据过去,替换之前旧的内容,以及之后我重新获取的数据是最新的数据] 的这个操作吗?

3693 次点击
所在节点    问与答
50 条回复
christin
2023-01-12 10:34:24 +08:00
sqlite ,数据库文件就存在项目文件里面,也不用额外起服务。
opengps
2023-01-12 10:36:51 +08:00
既然没有服务器,access ,sqlite 之类都无法用,那就只能客户端直接存本地浏览器 localStorage 之类的
dzdh
2023-01-12 10:38:15 +08:00
firebase ?
OkabeRintaro
2023-01-12 10:41:16 +08:00
@opengps 就是需要换电脑呀 比如我在公司的 A 电脑背诵好了,我回到家想用自己的 B 电脑继续背诵
OkabeRintaro
2023-01-12 10:43:50 +08:00
@christin 百度了下,还是没懂这个是个什么,是如何使用的?
amlee
2023-01-12 11:01:59 +08:00
sessionStorage 或 indexedDB ,然后自己做个导入导出功能。

https://zh.javascript.info/indexeddb

https://zh.javascript.info/localstorage
kaedeair
2023-01-12 11:02:54 +08:00
静态网页是做不到的,你需要导入导出功能,把文件用其他软件同步
lichao
2023-01-12 11:06:39 +08:00
去学后端和数据库,其他路子大概率是歧途
orzorzorzorz
2023-01-12 11:07:44 +08:00
静态网页没辙。既想,又想,其实挺难的。
但既然是搁 github 上,那就存成 json ,稍微起个修改 json 文件内容的服务。每次记录就本地跑起来,点完再传到 github ,本质是用 github 当数据库来同步。
或者再一个思路,是内网穿透。你直接访问你自己的电脑,这样就没有同步的问题了。
andrew2558
2023-01-12 11:09:33 +08:00
你这个需求直接用 json server 就可以了
charslee013
2023-01-12 11:10:21 +08:00
有个比较野的路子就是用 GitHub Gist 来存储
Listen 1 就是这么做的
InDom
2023-01-12 11:13:58 +08:00
我记得有一些( VS Code 的 Config Sync )是把配置文件同步到 gist 进行保存。

你可以看下能否在你的页面上也通过这种方式提交到 gist 。

不过不清楚是否会有跨域问题,如果有跨域问题,可以简单的通过油猴脚本提供一个跨域的接口。

比如我之前写过这样的一个可以直接用
https://greasyfork.org/scripts/404148

但是缺点是,每个设备首次使用时,需要配置一下,这些信息可以存在 sessionStorage 或 indexedDB 。

同理,其他云存储服务,或者提供 api 的网盘都可以用。

Tampermonkey 的 实用工具,不就是有云导入导出功能嘛。
chendl111
2023-01-12 11:14:17 +08:00
onedrive+excel
jamosLi
2023-01-12 11:19:52 +08:00
你这思路本身就有问题。换句话说你是在 github 做的存储,你要改变存储那就要变更 GitHub 上的文件,那就是要用 git 相关,其他扯一堆没一个有用的。
要么买服务器搭数据库,上服务,要么就离线或者骚操作改 GitHub 文件,没有别的招式。
OkabeRintaro
2023-01-12 11:39:49 +08:00
@jamosLi 也不是要改 github 文件,就是想找到个第三方来存放我的数据和从第三方获取数据
msaionyc
2023-01-12 11:42:09 +08:00
数据库只是形式,你没有服务器 /数据库是做不了你想做的事情的,哪怕用 github 之类的静态文件做这个事情,那从形式上来说 github 就是这个项目的数据库。

你在 a 设备的行为数据,期望可以在 b 设备上拿到,这就需要有一个第三方的设备来存储这个数据,你现在说没有服务器没有数据库,那你觉得这个数据该怎么流转,这个数据必须要保存,哪怕保存在内存里,也是保存,保存这个数据的设备其实就是服务器,保存这个数据的程序就是数据库。

你没搞清楚自己想做的事情的流程,也不明白很多概念。你现在要解决的问题是数据如何存储,数据结构如何组成,数据如何流转,这些平时都是后端的范畴,但前端也是可以解决的,但必须要有服务器 /数据库来承载

我没秀优越感或者谴责你的意思,我能感受到你对很多概念的迷茫,希望说的这些能帮助到你
OkabeRintaro
2023-01-12 11:43:51 +08:00
--我目前的解决方案是: 在公司,我单词记录好之后,直接导出为字符串,然后我复制这个字符串放到一个 txt 文件里面
--回到家,打开自己电脑,把 txt 文件里面的字符串 直接粘贴进去,然后就会展现我在公司的背诵记录
OkabeRintaro
2023-01-12 11:47:13 +08:00
@msaionyc 就是想找一个快速的第三方,之前想着那种 faskMock 模拟数据
play78
2023-01-12 11:50:58 +08:00
申请个码云或者 github 账号。然后前端引用一个纯 js 的 git 客户端。
https://stackoverflow.com/questions/3411302/javascript-git-client
然后每次打开应用就 git pull 更新配置。需要提交就 git push
试试看怎样?
OkabeRintaro
2023-01-12 11:51:35 +08:00
@msaionyc 这个第三方给我接口,能够让我上传新的数据,请求最新数据就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908345

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX