在我们的 CMS 中,我们有一个地方可以让用户玩弄他们的网站层次结构——移动页面、添加和删除页面等。
我们使用拖放来实现移动页面。
每个动作都必须保存在数据库中,并导出为许多 HTML 文件。如果我们每一步都这样做,它会减慢用户的速度。因此,我们认为最好让用户随心所欲地玩耍,将每个更改保存到 DB,但仅在他们离开页面时 - 将更改导出到 HTML 文件。
我们曾考虑让用户在准备好提交更改时单击“发布”按钮,但我们担心用户不会记得这样做,因为从他们的角度来看,一旦他们将页面移动到新地方 - 动作完成。按钮的另一个问题是它与站点其他部分的行为不一致(例如,当用户在页面内移动文本时,更改会自动保存,因为只有 1 个 HTML 文件需要更新)
那么我们如何在离开页面时自动保存用户更改呢?