--前端菜鸟一枚,不懂后端,最近写了个背单词的表格网页,可以打钩打叉,记录自己哪里记住了没有
然后,把这个网页托管在了 github 上面
--现在想实现这样一个功能,我在 A 电脑背诵完了做好了记录,我想在 B 电脑打开这个网页,能够同步我上次的背单词打钩打叉记录,并且有保存上传新的数据记录的功能
--我没有服务器 /数据库,请问有什么路子能够做到这个吗?
--或者线上的 fastMock 、EasyMock 能够做到 [我上传新数据过去,替换之前旧的内容,以及之后我重新获取的数据是最新的数据] 的这个操作吗?
目前是怎么一回事:
--每次更新保存出来的是字符串,这个字符串长达 50w 字,其实就是一个 json 数据,只是我把他纯文本输出保存了
--每次新电脑打开这个网址,网页就开始检测有无本地历史记录,有就调取这个历史记录,没有就弹出输入框让用户输入之前保存的字符串。
--终极目的:希望用户能只在网页上进行所有的操作,不需要再下载其他什么软件,来进行额外操作,就能多设备同步最新数据。
1
christin 2023-01-12 10:34:24 +08:00
sqlite ,数据库文件就存在项目文件里面,也不用额外起服务。
|
2
opengps 2023-01-12 10:36:51 +08:00
既然没有服务器,access ,sqlite 之类都无法用,那就只能客户端直接存本地浏览器 localStorage 之类的
|
3
dzdh 2023-01-12 10:38:15 +08:00
firebase ?
|
4
OkabeRintaro OP @opengps 就是需要换电脑呀 比如我在公司的 A 电脑背诵好了,我回到家想用自己的 B 电脑继续背诵
|
5
OkabeRintaro OP @christin 百度了下,还是没懂这个是个什么,是如何使用的?
|
6
amlee 2023-01-12 11:01:59 +08:00
sessionStorage 或 indexedDB ,然后自己做个导入导出功能。
https://zh.javascript.info/indexeddb https://zh.javascript.info/localstorage |
7
kaedeair 2023-01-12 11:02:54 +08:00
静态网页是做不到的,你需要导入导出功能,把文件用其他软件同步
|
8
lichao 2023-01-12 11:06:39 +08:00 3
去学后端和数据库,其他路子大概率是歧途
|
9
orzorzorzorz 2023-01-12 11:07:44 +08:00
静态网页没辙。既想,又想,其实挺难的。
但既然是搁 github 上,那就存成 json ,稍微起个修改 json 文件内容的服务。每次记录就本地跑起来,点完再传到 github ,本质是用 github 当数据库来同步。 或者再一个思路,是内网穿透。你直接访问你自己的电脑,这样就没有同步的问题了。 |
10
andrew2558 2023-01-12 11:09:33 +08:00
你这个需求直接用 json server 就可以了
|
11
charslee013 2023-01-12 11:10:21 +08:00
有个比较野的路子就是用 GitHub Gist 来存储
Listen 1 就是这么做的 |
12
InDom 2023-01-12 11:13:58 +08:00
我记得有一些( VS Code 的 Config Sync )是把配置文件同步到 gist 进行保存。
你可以看下能否在你的页面上也通过这种方式提交到 gist 。 不过不清楚是否会有跨域问题,如果有跨域问题,可以简单的通过油猴脚本提供一个跨域的接口。 比如我之前写过这样的一个可以直接用 https://greasyfork.org/scripts/404148 但是缺点是,每个设备首次使用时,需要配置一下,这些信息可以存在 sessionStorage 或 indexedDB 。 同理,其他云存储服务,或者提供 api 的网盘都可以用。 Tampermonkey 的 实用工具,不就是有云导入导出功能嘛。 |
13
chendl111 2023-01-12 11:14:17 +08:00
onedrive+excel
|
14
jamosLi 2023-01-12 11:19:52 +08:00
你这思路本身就有问题。换句话说你是在 github 做的存储,你要改变存储那就要变更 GitHub 上的文件,那就是要用 git 相关,其他扯一堆没一个有用的。
要么买服务器搭数据库,上服务,要么就离线或者骚操作改 GitHub 文件,没有别的招式。 |
15
OkabeRintaro OP @jamosLi 也不是要改 github 文件,就是想找到个第三方来存放我的数据和从第三方获取数据
|
16
msaionyc 2023-01-12 11:42:09 +08:00 via iPhone
数据库只是形式,你没有服务器 /数据库是做不了你想做的事情的,哪怕用 github 之类的静态文件做这个事情,那从形式上来说 github 就是这个项目的数据库。
你在 a 设备的行为数据,期望可以在 b 设备上拿到,这就需要有一个第三方的设备来存储这个数据,你现在说没有服务器没有数据库,那你觉得这个数据该怎么流转,这个数据必须要保存,哪怕保存在内存里,也是保存,保存这个数据的设备其实就是服务器,保存这个数据的程序就是数据库。 你没搞清楚自己想做的事情的流程,也不明白很多概念。你现在要解决的问题是数据如何存储,数据结构如何组成,数据如何流转,这些平时都是后端的范畴,但前端也是可以解决的,但必须要有服务器 /数据库来承载 我没秀优越感或者谴责你的意思,我能感受到你对很多概念的迷茫,希望说的这些能帮助到你 |
17
OkabeRintaro OP --我目前的解决方案是: 在公司,我单词记录好之后,直接导出为字符串,然后我复制这个字符串放到一个 txt 文件里面
--回到家,打开自己电脑,把 txt 文件里面的字符串 直接粘贴进去,然后就会展现我在公司的背诵记录 |
18
OkabeRintaro OP @msaionyc 就是想找一个快速的第三方,之前想着那种 faskMock 模拟数据
|
19
play78 2023-01-12 11:50:58 +08:00
申请个码云或者 github 账号。然后前端引用一个纯 js 的 git 客户端。
https://stackoverflow.com/questions/3411302/javascript-git-client 然后每次打开应用就 git pull 更新配置。需要提交就 git push 试试看怎样? |
20
OkabeRintaro OP @msaionyc 这个第三方给我接口,能够让我上传新的数据,请求最新数据就好了
|
21
xuxuxu123 2023-01-12 11:53:39 +08:00
用云函数吧,很多云厂商都有,直接写 nodejs 就好了
|
22
OkabeRintaro OP |
23
renmu 2023-01-12 12:29:08 +08:00 via Android
webdav
|
24
netnr 2023-01-12 13:05:10 +08:00 via Android
用 CF 吧,有 Serverless KV SQLite,为 OP 需求量身定制,还有 LeanCloud
|
25
superedlimited 2023-01-12 13:18:40 +08:00
google sheets api 或许可以
|
26
marcogray 2023-01-12 13:38:24 +08:00
应该不需要第三方。你这个数据量应该也不是太大,试试把数据 base64 后存到 URL 上,Chrome 的同步浏览历史记录应该就能支持不同设备同步了。
|
27
LeegoYih 2023-01-12 13:42:56 +08:00
csv excel
|
28
A555 2023-01-12 13:43:02 +08:00
你这不如 icloud 直接同步文件算了
|
29
xuelu520 2023-01-12 13:47:27 +08:00
存 json 文件,或者楼上说的那些都行。
|
30
a90120411 2023-01-12 13:59:25 +08:00
Amazon DynamoDB 有免费额度,足够用了。
|
31
zer0fire 2023-01-12 14:26:24 +08:00
直接用在线金山文档或腾讯文档, 发起一个调查问卷, 自己答卷就行了
|
32
TimeRain 2023-01-12 14:57:49 +08:00 via Android
serverless 方案
|
34
zhang77555 2023-01-12 15:29:51 +08:00
leancloud 数据存储服务,很久以前用过,不了解现在咋样了
https://leancloud.cn/docs/leanstorage_guide-js.html |
35
bjfane 2023-01-12 15:35:52 +08:00
难道不是趁机卷后端么?
|
36
OkabeRintaro OP @oott123 你好,这个 jsonbin 是如何使用的?或者有教程吗?
|
37
OkabeRintaro OP @oott123 jsonBIN 普通用户不能创建超过 100KB 的数据 可惜
|
38
Light3 2023-01-12 16:17:06 +08:00
挂 N 个 json 文件
|
39
OkabeRintaro OP @Light3 我是需要修改传送新的呀
|
40
liubaicai 2023-01-12 17:08:20 +08:00
@OkabeRintaro sqlite 都百度不懂,建议你先别搞这些,学一些基础的计算机和开发的知识。
|
41
luos543 2023-01-12 21:00:56 +08:00
把需要存储的资料用 base64 加在 url 上, 同步书签
|
42
opengg 2023-01-12 21:04:45 +08:00
cloudflare workers + R2 ,免费配额完全够用。
|
43
kapr1k0rn 2023-01-12 22:41:01 +08:00 via iPhone
把字符串存到 url 参数里,然后浏览器自动同步浏览历史就可以了
|
44
ginakira 2023-01-13 00:30:35 +08:00
提供个简单的思路,可以用 Notion ,既有客户端可以直接操作,也有开放的 API 做增删改查
|
45
OkabeRintaro OP 目前是怎么一回事:
--每次更新保存出来的是字符串,这个字符串长达 50w 字,其实就是一个 json 数据,只是我把他纯文本输出保存了 --每次新电脑打开这个网址,网页就开始检测有无本地历史记录,有就调取这个历史记录,没有就弹出输入框让用户输入之前保存的字符串。 --终极目的:希望用户能只在网页上进行所有的操作,不需要再下载其他什么软件,来进行额外操作,就能多设备同步最新数据。 |
46
OkabeRintaro OP 大家可以打开我附上的网址 https://kyomasan.github.io/practiceEnglish/ ,点击取消出现原始表格之后,打开浏览器的 localstorage 就能看到 localTableDataArr 这个属性的值, 他就是数据源,可以复制看看有多少字。
|
47
OkabeRintaro OP 等周末再看看吧 工作日不想再捣鼓了
|
48
huobazi 2023-01-13 09:54:35 +08:00
用文本吧
|
49
jahanngauss414 2023-01-13 10:09:30 +08:00
@OkabeRintaro 看了下你的 localstorage ,其实你可以改进一下,把单词数据和进度数据分离开,然后存储进度的数据结构可以变精简一点,可以试试把数据放 hash 里面
|
50
yoahang 2023-01-13 15:00:39 +08:00
基于文件的数据库, 或者把数据存在前台
|