参考主流平台优化邮件项目的自动保存草稿机制

77 阅读3分钟

本文源自道招网的# 参考主流平台优化邮件项目的自动保存草稿机制

背景

邮件项目目前有两处支持自动保存草稿

  • 场景一:在编辑邮件过程中切换至其它邮件,编辑内容自动保存为邮件草稿。

file

  • 场景二:在主窗口编辑邮件时点击“独立窗口打开”,主窗口编辑内容自动保存草稿,独立窗口加载该草稿。

file

待优化点:

  • 依赖明确的页面跳转或者点击行为触发保存草稿,没有实时保存机制
  • 场景二中切换独立窗口过程依赖服务端来完成草稿信息存、取,容易受到网络等因素影响

主流产品保存草稿方案调研

现存方案

163邮箱
  • 行为保存 页面跳转或主动点击保存时自动保存,在顶部给予提示

file

  • 实时保存 5分钟后执行一次自动保存检查,内容有变化则提交服务端

  • 独立窗口 打开邮件,写邮件、查看邮件默认是使用新开标签窗口来打开页面,无独立窗口。

QQ邮箱
  • 行为保存 判断当前是否存在内容变更,有则进行二次弹框确认,否则直接跳转。

file

  • 实时保存

file

  • 独立窗口 在编辑邮件时支持新开浏览器窗口写信。

file

主窗口暂存当前邮件信息至window下全局变量,window.open新开窗口,新窗口加载主窗口全局变量信息。

Outlook
  • 行为保存 页面切换自动保存

  • 自动保存 每30秒执行一次自动保存检查,如果编辑器内容发生改变则提交服务器。新开窗口后自动保存检查仍由主窗口完成。

  • 独立窗口 window.open新开窗口,新窗口通过使用主窗口共享变量的方式加载当前邮件信息。

Gmail

输入后立即保存至服务端

结论

主流邮件平台保存草稿的机制基本类似,主要有以下几点:

  • 除主动保存点击外,其它从当前编辑页跳出的操作行为,都会保存草稿至服务端。
  • 使用定时器实现自动保存检查,如果编辑内容较上次发生变更则提交草稿至服务端。
  • 新开窗口加载的草稿数据直接来源于主窗口的草稿数据,不需要借助于服务端。

总结

现有邮件项目将采取以下措施改进现有自动保存机制

  • 提供对当前编辑器内容是否发生变更的判断能力
  • 加入对当前编辑内容的自动保存定时执行机制,检查发生内容变更则及时保存至服务端
  • 新开窗口加载邮件草稿数据不再借助服务端完成存取,直接通过前端数据共享或通信完成即可