素材分类

DIY模板保存后空白的数据挽救与原理



保存流程:
前台JS -> post布局数据(xml)格式给后台程序->一系列处理->save_diy_data()函数进行存储

在这个流程中,出现点击保存后,模板数据丢失的情况主要原因是 浏览器post给后台的XML数据里,布局数据为空。最终导致了这个空的xml经过处理在数据库中替换掉了原有的数据。

挽救办法,一旦出现这种情况后,再次进入DIY页面。选择 保存 按钮旁边的 恢复备份即可恢复这次保存前的数据。

原理:
在save_diy_data()中函数接收到整理好的数据,首先进行空值判断和是否是数组判断。为假的话退出函数。(布局数据已经被由xml转换成了数组)
然后读取此页的默认模板,对此页默认模板进行处理,把传进来的布局数据分插到默认模板中。

然后判断一下是不是保存的临时文件,如果是的话,那DIY的模板名就加上 _diy_preview.htm 后缀,如果不是保存的缓存,则用当前的模板名。

最终此文件保存在 /data/diy/ 目录中,如果目录中已经有同名的文件(上一次保存DIY模板的时候保存下来的)就把这个文件加上.bak保存在同目录。ps.这个文件很重要,也就是你恢复数据所需要的数据。

经历过以上步骤之后,如果没有出现文件读写问题,最后把模板数据序列化一下插入在 common_diy_data 表格中。注意这里用的是替换插入,如果是同名的模板文件,则就替换掉了。这也就是为什么传进来的模板数据是空的布局。也就在这里替换掉了。

恢复,系统提供的恢复备份功能也就是利用上面 data/diy 文件夹中的.bak 文件进行数据恢复。




本文由模板圈整理编辑,转载请注明出处和本文链接!

鲜花

握手

雷人

路过

鸡蛋
粉丝0 阅读5803 回复0
上一篇:
UCenter后台备份出现“无法访问到该应用的备份接口”问题分析及处理发布时间:2017-12-28
下一篇:
x2 uc通信过程分析发布时间:2017-12-28

精彩阅读

阅读排行榜



关注官方微信

微信号:模板圈开发中

微博:模板圈开发中

QQ1群:128371172

QQ2群:128371172

全国服务热线:

QQ208546974

(工作日:周一至周五 9:00-16:00)
北京市朝阳区红军营南路
208546974@qq.com

Archiver-手机版-小黑屋- 模板圈mubanquan.com

Powered by mubanquan © 2017-2018    粤ICP备17163672号-3