内容简介:版权声明:版权归博主所有,转载请带上本文链接!联系方式:abel533@gmail.com https://blog.csdn.net/isea533/article/details/86548935
版权声明:版权归博主所有,转载请带上本文链接!联系方式:abel533@gmail.com https://blog.csdn.net/isea533/article/details/86548935
周六早晨上班,同事说 ProcessOn 上面的一个思维导图打不开了(一直转圈儿,没有任何内容),这是一个非常重要的思维导图,如果真出现问题,可能以后都不敢用 ProcessOn 了。我同事自己先和客服联系,由于他们周末不上班,此事无法解决。
我自己因为好奇,就想看看自己能不能恢复了,因此有了本文。
本文不涉及复杂的功能,整个处理过程只使用了 Chrome 浏览器,打开 F12 即可。
为了能看到正常思维导图的处理过程,先创建一个简单的思维导图,添加一个简单的内容。
进行下面操作前,先打开 F12 控制台,每次操作前都建议清空 Network 里面的内容。
对代码不懂的读者可以直接看最后面的代码
粘贴到浏览器控制台执行按照提示操作即可。
获取历史
ProcessOn 有历史功能,因此我第一步想到的是获取历史,然后还原到某个可用的版本。
下面开始详细的操作步骤:
- 按下面方式,点击【历史版本】
- 查看此时的浏览器请求如下
- 查看调用的方法(鼠标放到 jquery.js?_…上面就会出现)
- 看到 loadHistorys,点击该行的链接
- 由于代码压缩过,点击代码左下角的
{}
按钮进行格式化,然后定位到如下位置
可以看到上面的请求很简单的,复制这段代码修改如下:
//获取所有历史信息 $.ajax({ url: "/diagraming/get_versions", data: { chartId: '思维导图的 ID,在浏览器地址栏的最后一部分' }, cache: false, success: function(g) { console.dir(g); } })
思维导图 ID 就是类似 https://www.processon.com/mindmap/5c427b11e4b03334b5086fdc
这个地址中的 5c427b11e4b03334b5086fdc
部分(该地址不存在,用你自己的地址测试)。执行结果如下:
上述代码执行后,会在控制台输出所有可用的历史版本,而且是倒序排列。展开想要还原的一个版本,示例如下:
复制 definitionId
的值。
还原到指定的版本
和前面类似,执行还原操作,查找对应的代码。
下面是几个操作步骤图。
- 点击还原
- 获取指定版本的配置
- 对应的代码如下
- 等待片刻,看到 restore
- 查看对应代码
上面两段代码都很简单,这里不一一分析,直接来最终的代码。
完整操作代码
代码如下:
//还原到指定的版本 (function restore(){ //根据当前浏览器地址获取 id var MAX_HISTORY_LENGTH = 10; var href = window.location.href; var chartId = href.substr(href.lastIndexOf('/') + 1); //获取所有历史 $.ajax({ url: "/diagraming/get_versions", data: { chartId: chartId }, cache: false, success: function(historyResp) { if(historyResp && historyResp.list){ //获取最近 MAX_HISTORY_LENGTH 个历史 var historyList = historyResp.list; var historyLength = historyList.length > MAX_HISTORY_LENGTH ? MAX_HISTORY_LENGTH: historyList.length; if(historyLength == 0){ alert('当前没有历史版本,无法选择还原!'); return; } var historyHtml = '清选择要还原的历史版本:\n'; for(var i = 0; i < historyLength; i++){ var h = historyList[i]; historyHtml += '\n'; historyHtml += i + '. ' + h.fullName + ' <' + h.remark + '> : ' + h.createDate; } historyHtml + '\n 请输入要还原历史的序号:'; var choose = prompt(historyHtml); if(choose === null){ return; } try { choose = Number(choose); } catch(e){ alert('输入错误:' + e); return; } if(choose > historyLength){ alert('序号超过可选范围'); return; } //获取历史详细信息 $.ajax({ url: "/diagraming/get_versiondef", data: { id: historyList[choose].definitionId }, success: function(b) { if (b.def == null) { alert('历史不存在'); return } if(confirm('确认要还原吗?')){ $.ajax({ url: "/mindmap/restore", type: "post", data: { def: b.def, chart_id: chartId, ignore: "def" }, success: function() { alert('还原完成,刷新查看'); window.location.reload(); } }) } } }) } } }); })();
用法:
- 用谷歌或者急速内核浏览器打开有问题的思维导图
- 按 F12 打开控制台
- 如上图,切换到 Console 标签,在下面输入框粘贴上述代码,回车执行
- 按照下面提示进行操作
最后确定后浏览器会自动刷新,此时可以看到效果。
以上所述就是小编给大家介绍的《ProcessOn 数据恢复》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- MySQL -- 数据恢复
- SQL恢复master数据库方法 只有mdf文件的数据库如何恢复
- MySQL数据恢复新姿势
- mysql利用表对象数据文件恢复数据
- 详解NetAppFAS3220数据恢复操作方法
- MySQL用全库备份数据恢复单表数据
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Visual Thinking
Colin Ware / Morgan Kaufmann / 2008-4-18 / USD 49.95
Increasingly, designers need to present information in ways that aid their audiences thinking process. Fortunately, results from the relatively new science of human visual perception provide valuable ......一起来看看 《Visual Thinking》 这本书的介绍吧!