1.它只支持word的历史版本,PowerPoint和Excel不支持历史版本。
Document history
If the document has been previouslyedited using Document Editor, you can view the document history.
The history iscurrently available for text document files only.
After editing in Document Editor theinformation about the changes during the editing session is sent together withthe changed document:
history -this information allows to display the time and the author for each documentversion when you view the document history in the side panel. Must be sent as aproperty changes of the object sent as the argument to the refreshHistory method.This method must be called after the onRequestHistory events.

2.并且历史版本只能看,不能再次编辑。
3.但是能看到哪里做了修改。
4.服务器只保留1个月内的历史版本。
5.能下载下来,可以重新上传进去协作。这是它存在的价值。
它的原理:
当一个协作文档,最后一个人关闭后,协作服务器(下文简写OODS——onlyoffice document server)会返回一条json数据给cms,cms获得这条数据后,解析为结构体,然后做2件事,一个是这条数据里保含了最新文档在OODS中的地址(url),cms根据这个url把文档下载下来,存到cms中,同时更新这个文档在数据库中的时间——这个新的时间(updatedtime)下次用来打开这个文档的key;另外一件事是数据中包含了修改记录文件(changesurl)地址,和这个版本的作者user、时间created,key1等信息,cms获取后需要存到数据库中,不需要下载真正的历史版本文件,只要这些数据比如key1,历史版本修改记录文件地址(changesurl)。
当下次打开这个文件时候,OO只认updatedtime生成的key,历史版本的key1用存在数据库中的,查历史版本key1,OODS就调用存在它里面的版本出来。
会思考的你可能发现了,那么文件其实不用存在本地(cms)吗??有了key1不就行了么?

不行,key1打开的不能编辑。因为看开始的第2点,哈哈。

初步试验代码:

//历史版本保留1个月。比如Unix时间戳(Unix timestamp)expires=1524547423var onRequestHistory = function() {// var changes=[{//     "created":"2018-03-10 14:22:15",//     "user":{"id":"8","name":"qin8.xc"}// }];// alert(changes[0].created);docEditor.refreshHistory({"currentVersion": 2,"history": [{"changes": [{{.changes1}}], //the changes from the history object returned after saving the document"created": "2018-03-9 10:15:55","key": "{{.Key}}",//1521951775531484800这里影响历史版本切换"serverVersion": "{{.serverVersion1}}", //the serverVersion from the history object returned after saving the document"user": {"id": "7","name": "qin.xc"},"version": 1},{"changes": [{{.changes2}}],"created": "2018-03-10 14:11:35","key": "1521951775531484800",//"user": {"id": "8","name": "qin8.xc"},"version": 2},{"changes": [{{.changes2}}],"created": "2018-03-11 14:11:35","key": "1521803509579508900",//当前版本"user": {"id": "9","name": "qin9.xc"},"version": 3},]});};var onRequestHistoryClose = function() {document.location.reload();};var onRequestHistoryData = function(event) {var version = event.data;docEditor.setHistoryData({//下面这里存变化的位置——一个文档附件对应一个这个地址,每次更新??"changesUrl": "http://192.168.99.100:9000/cache/files/1521953170330601700_4540/changes.zip/changes.zip?md5=w6DItkSwyBJkuHDl_CiZZQ==&expires=1524547423&disposition=attachment&ooname=output.zip", //the changesUrl from the JSON object returned after saving the document"key": "","previous": {"key": "",//这里不影响版本切换"url": ""//http://192.168.99.100:9000/cache/files/1521953170330601700_4540/output.docx/output.docx?md5=eSwnrSSumTeMuh59IoXhCQ==&expires=1524547423&disposition=attachment&ooname=output.docx这里影响版本},"url": "","version":4 //version})};window.docEditor = new DocsAPI.DocEditor("placeholder",{"events": {"onRequestHistory": onRequestHistory,"onRequestHistoryClose": onRequestHistoryClose,"onRequestHistoryData": onRequestHistoryData,},

ONLYOFFICE历史版本开发技术之二相关推荐

  1. ONLYOFFICE历史版本开发技术之四

    ONLYOFFICE历史版本开发技术之一 ONLYOFFICE历史版本开发技术之二 ONLYOFFICE历史版本开发技术之三 继昨天打包好onlyoffice5.3.4版本后,本想将engineerc ...

  2. ONLYOFFICE历史版本开发技术之三

    ONLYOFFICE历史版本开发技术-之三  这玩意儿从思路到代码还着实费了老劲了.但并不完美,它没有提示对比功能,或者说实在没试出来. 难在它数据很乱. 2组数据,一组是历史数据history,主要 ...

  3. Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...

    Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述---- 隐鹤  /  HelloWorld 1. 引言 自本人第一篇博文"Excel阅读模式/单元格行列指示/聚光灯 ...

  4. ONLYOFFICE历史版本功能的开发技术之一

    https://api.onlyoffice.com/editors/history 上面的页面介绍如何进行历史版本功能的开发. https://api.onlyoffice.com/editors/ ...

  5. git 查看某些文档的历史版本_Git 教程(二)log 命令的使用

    使用 Git 进行版本控制时,要习惯他的工作流程,Git 的工作流程是,先在工作区创建项目并编写代码,然后将写好的文件添加到暂存区,最后将暂存区里的文件提交到历史版本库.如下图所示: 每向版本历史库做 ...

  6. PC软件开发技术之二:用C#开发基于自动化接口的OPC客户端

    OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁.OPC作为一 ...

  7. 动态网页开发技术(二):Servlet

    ServletConfig对象 1)ServletConfig是用来获得Servlet的相关配置的对象 2)获得ServletConfig对象-通过Servlet的实例调用getServletConf ...

  8. 开发技术-修正二维码白边

    1.现状: 在前后端代码都一样的情况下,不同服务器上,生成二维码白边间距不一样. 扒拉了下先前伙伴写的代码,定义了二维码整体的宽和高,但是并没有定义最外围白边的区域. 从网上找了一段代码,亲测可用 / ...

  9. 产品周报第29期|创作中心优化:发文助手新增质量分检测功能,博文增加内容历史版本

    「创作中心」的初衷是尽可能让CSDN博主们创作的优质内容,获得更高的影响力和价值.博主们分享的知识和见解,不仅可以帮助后来者,让他们少走弯路,还可以为自己赢得声誉,更重要的是还能获得真金白银的收益. ...

最新文章

  1. python之接口开发
  2. 华为机考HJ4字符串分隔C语言题解
  3. 重磅!2020年度人类社会发展十大科学问题发布
  4. gin自定义路由日志的格式
  5. php global global,PHP中global全局变量的作用范围
  6. css中实现div的显示和隐藏
  7. vue 删除两个集合中相同的数据_vue.js如何删除数组里面的数据
  8. java基础—Hashtable,HashMap,TreeMap的区别
  9. python可以封装成独立程序吗_windows环境下把Python代码打包成独立执行的exe
  10. 金山词霸 2009 专业版
  11. 九歌计算机在线作诗硬件原理,矣晓沅,孙茂松:计算机的诗意 | 机器写诗的背后...
  12. PHP学生学校在线考试管理系统,MYSQL数据库网页设计
  13. 无线学习之mac80211专题-1-自适应速率控制算法
  14. 阿里天池课堂Python
  15. 【数据结构】第六章——图(详解)
  16. PLC通讯实现-C#实现西门子PLC MPI通讯W95_S7(五)
  17. matlab fgetc,fgetc函数的作用是什么
  18. 利用Pocket阅读墙外博客
  19. 5、6月程序员“薪资被应届生倒挂“现象明显,跳槽还是等待?
  20. Linux下安装软件的3种方式

热门文章

  1. lol怎么显示连接服务器失败怎么回事,lol为什么有网无法连接服务器失败
  2. 刘强东,揭开京东未来盈利迷局
  3. LSCP: Locally Selective Combination in Parallel Outlier Ensembles-学习笔记
  4. Unable to find image ‘yt:latest‘ locally
  5. Godaddy SSL证书解析到阿里云后配置nginx服务器https
  6. Mac新手使用技巧——Safari浏览器
  7. java实现调用打印机
  8. 股票的内外盘(转贴收藏)
  9. java程序假死_分析一个常见的java多线程通信问题(假死现象)
  10. 台式计算机启动时 每次按f1,台式机电脑每次开机都要按F1,华硕主板