当前位置: 首页 > Web前端 > HTML

文章功能设计草稿

时间:2023-03-28 18:35:16 HTML

在写segmentfault文章的过程中,发现它的功能设计草稿很有意思。本文分析其设计逻辑。当您点击创建新文章时,您将进入撰写文章的页面。共有三个可编辑区域:标题、标签和文本。只需触发其中一项更改,在大约4秒不活动后,它将自动保存为草稿。这时候,如果你有其他事情,不能完成文章的写作和发表,也没关系。有空的时候,可以在写作的下拉菜单中打开你的草稿,继续编辑。正式发表文章前可重复此操作,只会保存一份草稿。当您发表文章时,相应的草稿将被删除。当您的文章再次发布和编辑后,会为您生成上次内容的旧版本,而您每次编辑和发布时,都会为您生成一个新版本来恢复文章。自动保存草稿停止打字约4秒后,会自动调用更新文章的接口:URL:https://segmentfault.com/gateway/draft/1220000041678229方法:PUTPayload:{"title":"文章草稿功能design","tags":[1040000000089899,1040000000391379,1040000000089799],"text":">在写segmentfault文章的过程中,发现它的draftfunctiondesign很有意思","object_id":"","type":"article","cover":"","id":1220000041678229}文章发布后文章发布后确认文章id为1190000041680161,再次编辑RequestURL:https://segmentfault.com/gateway/draft/1220000041680164请求方式:PUT可以发现保存草稿时,id已经变成了1220000041680164,推测草稿id与那个版本相同。每次编辑完成并发布时,都会生成一个新版本的草稿。4秒自动保存实现constautoSave=()=>{if(timer){clearTimeout(timer)}constt=setTimeout(function(){form.submit()clearTimeout(timer)setTimer(null)},4000)setTimer(t)}每次表单输入区域发生变化,都会触发这个自动保存方法,延迟4秒执行。总结所以这个草稿功能涉及到数据库表,分别是草稿和文章。草稿中有一个版本字段。