(六) kityminder 协同编辑执行用例时,如果做到不相互干扰
有同事在使用用例管理平台的时候反馈到,他跟另外一个同事一起执行某条用例,但是因为用例内容非常多,所以他的做法是仅展开自己需要执行的部分用例,其他的用例都做收起处理。但是这个做法,另外一个同事就不愿意了,因为这个收起展开的操作,也会同步到他的界面上,导致他根本没有办法执行他的用例。
idea
所以就上面的问题,想着有没有可能类似并没有涉及到内容,或者顺序的变化的操作,可以把这类的操作给过滤掉,而只传递关键数据变更的操作。
我们先看下 原本的逻辑是如何的
/*** 发送补丁数据*/
sendPatch = (diff) => {this.sendMessage("1" + JSON.stringify({ case: this.getAllData(), patch: [diff], }))
}
我们可以看到,一旦内容变化,计算出diff数据以后,就直接通过websocket发送给到服务端去了,所以我们可以想的就是处理下这里的diff内容, 过滤掉无需要传递的数据。 那我们再来看看diff的数据是什么样的。
[{"op": "replace","path": "/root/children/0/children/0/data/layout_right_offset/x","value": -33}
]
是如上的数组的数据,就比如说上述的操作其实就是把节点的x坐标做了偏移处理,像这种数据其实就可以不需要去传递的, 所以我们可以过滤掉这样子数据,通过path的结尾来判断,因为 op以及value并不是有确定性。
解决
如果在线编辑用户是大于1的情况下,就过滤掉一些非更新数据的diff内容。
/*** 发送补丁数据*/
sendPatch = (diff) => {if (this.state.editUsers.length > 1) {// 如果说编辑的人超过了1人的话 部分的样式修改 ,需要把它过滤掉diff = diff.filter(item => {return !endsWith(item.path, "layout") && !endsWith(item.path, "layout_right_offset") && !endsWith(item.path, "expandState") && !endsWith(item.path, "layout_right_offset/y") && !endsWith(item.path, "layout_right_offset/x")})}this.sendMessage("1" + JSON.stringify({ case: this.getAllData(), patch: [diff], }))
}
结果如上。
(六) kityminder 协同编辑执行用例时,如果做到不相互干扰相关推荐
- 局域网内使用的多人协同编辑文档的软件哪个好?对比5款主流平台
支持局域网内多人协同编辑文档的软件或平台哪个好?PingCode .Confluence 等知识库工具和腾讯文档.飞书文档等都支持多人协作编辑,怎么选?这是企业团队在找文档管理工具最常见的问题. 支持 ...
- python测试框架untest怎么循环执行_unittest如何在循环遍历一条用例时生成多个测试结果...
引用自:http://blog.csdn.net/kaku21/article/details/42124593 参考网址:http://programmaticallyspeaking.com/te ...
- python接口自动化(二十六)--批量执行用例 discover(详解)
简介 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了.加载用例后,用 unittest 里 ...
- 打破技术壁垒, 用SpreadJS 抢占“表格文档协同编辑系统”的入市先机
本文由葡萄城技术团队于CSDN原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在线文档的发展机遇与挑战 现阶段,复工复产成为企业的迫切诉求.线上 ...
- 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
写在前面的话 加入实验室已经有大半年的时间了,科研上一直没有取得什么重大突破.除去自身的实力问题之外,最大的问题恐怕就是对于自己或导师提出的一个问题往往不知道从何入手去研究,如何快速的了解相关工作的现 ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...
- php执行mysql insert,当执行mysql insert 时插入两条是咋回事
当执行mysql insert 时插入两条是怎么回事? 本帖最后由 Eason_____________ 于 2013-07-25 11:25:44 编辑 //做了一个手机上传图片到服务器的功能.但是 ...
- PingCode Wiki 多人实时协同编辑功能发布
PingCode Wiki 在发布之初,就是希望打造成一个面向组织的知识管理系统. 通过结构化沉淀高价值信息,形成组织完整的知识体系.通过便捷地分享和传播,轻松提升知识的流转效率,更好地成就组织和个人 ...
- 如何指定在Git上执行shell命令时使用的私有SSH密钥?
也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(git)命令时使用. 基本上是这样的: git clone git@github.com:TheUser/T ...
最新文章
- 阿里云视频点播获取视频点播的video信息
- 什么水平能做java中级工程师,挑战大厂重燃激情!
- 三十二楼层选几层最好_32层的房子买几楼好
- Struts2里的Action返回Json数据
- linux java url 异常_java解决cdp4j异常WebSocket connection url is required
- python编程代码执行漏洞_代码执行漏洞 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...
- Python菜鸟入门:day05列表
- proxool,好东西
- Ubunt 服务教程集锦
- Rhino Grasshopper 参数化建模 资源合集
- .net的commandname领悟
- 【前端进阶】-TypeScript类型声明文件详解及使用说明
- 你听过“费斯汀格法则”吗?多少人因为不懂而被残害!好文!
- win 10系统语言栏不见了怎么办?
- 新网站做SEO最适合做哪些外链
- ※前端面试--知识总结
- PTA 7-10 古风排版
- SpringBoot登录验证码实现
- 5、英飞凌-AURIX-TC3X7: PWM实验之使用 GTM -TOM 实现
- swift版QQ音乐播放器(二)