element

基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件

元气小坏坏 提交于 2020-08-15 12:30:04
目录 1. 前言 2. 关于vue-simple-uploader 3. 基于vue-simple-uploader封装全局上传组件 4. 文件上传流程概览 5. 文件分片 6. MD5的计算过程 7. 秒传及断点续传 7.1 对于前端来说 7.2 前端做分片检验:checkChunkUploadedByResponse 8. 源码及后记 8.1 关于第一个分片丢失问题 2019/8/6更新 1. 前言 之前公司要在管理系统中做一个全局上传插件,即切换各个页面的时候,上传界面还在并且上传不会受到影响,这在vue这种spa框架面前并不是什么难题。然而后端大佬说我们要实现 分片上传 、 秒传 以及 断点续传 的功能,听起来头都大了。 很久之前我写了一篇webuploader的文章,结果使用起来发现问题很多,且官方团队不再维护这个插件了, 经过多天调研及踩雷,最终决定基于 vue-simple-uploader 插件实现该功能,在项目中使用起来无痛且稳定。 如果你只是想实现基本的(非定制化的)上传功能,直接使用 vue-simple-uploader ,多读一下它的文档,不需要更多的二次封装。 如果你只是想实现全局上传插件,也可以参照一下我的实现。 如果你用到了分片上传、秒传及断点续传这些复杂的功能,恭喜你,这篇文章的重点就在于此。 本文源码在此: https://github.com

el-tabs添加滚动条

萝らか妹 提交于 2020-08-15 10:58:16
element-ui的el-tabs默认是没有滚动条的,可在 el-tab-pane上添加: < el-tab-pane style ="height:90%;overflow-y:auto;overflow-x:hidden;" > 来源: oschina 链接: https://my.oschina.net/u/4256554/blog/4496610

LinkedList源码分析

非 Y 不嫁゛ 提交于 2020-08-15 09:20:48
/** * 1、是否允许空:允许 * <p> * 2、是否允许重复数据:允许 * <p> * 3、是否有序,有序的意思是读取数据的顺序和存放数据的顺序是否一致:无序 * <p> * 4、是否线程安全:非线程安全 * <p> * 5、底层数据结构:双向链表。实现了Deque这个接口,所以也可以当栈和队列使用 */ package java.util ; import java.util.function.Consumer ; public class LinkedList<E> extends AbstractSequentialList<E> implements List<E> , Deque<E> , Cloneable , java.io.Serializable { /** * 元素个数 */ transient int size = 0 ; /** * 指向首节点 * Pointer to first node. * Invariant: (first == null && last == null) || * (first.prev == null && first.item != null) */ transient Node<E> first ; /** * 指向尾结点 * Pointer to last node. * Invariant: (first ==

使用ABAP Data Validator验证数据有效性

蓝咒 提交于 2020-08-15 08:41:04
在日常的开发过程中,我们常常要处理不同来源的数据。数据可能来自不可靠的外部系统、不可靠的用户输入和甚至设计有误的数据库表,因此,对数据有效性进行验证是必要的工作。 开源工具 ABAP Data Validator 是一个使用ABAP开发的数据验证工具,它可以简化开发者在这方面的工作。本文将介绍它的用法和一些设计思路。 本文链接: https://www.cnblogs.com/hhelibeb/p/12206648.html 原创内容,转载请注明 目的 具体而言,ABAP Data Validator将通过以下的思路简化数据有效性验证方面的工作: 提供统一的检查接口,让开发者通过单次方法调用就可以实现对数据的检查。 将验证逻辑集中实现,避免相似的检查代码分散在系统各处造成的逻辑不一致,从而降低相关程序的维护成本。 避免检查过程中的潜在dump,减少开发者处理dump问题的精力花费。 为了实现以上目的,该工具实现了一些功能: 内置常见的验证逻辑。 可配置的检查规则。 可扩展的检查程序。 异常的统一处理。 支持的检查列表 ABAP Data Validator目前支持以下类型的检查(持续更新中): 日期. 时间. 时间戳. 邮件地址. INT4. 正则字符串. URL. JSON. HEX. IMEI. GUID. BASE64. HTML (实验性的). 此外

div嵌套点击阻止冒泡

佐手、 提交于 2020-08-15 08:05:34
遇到需求,点击card跳转到指定页面,但是这个cear有按钮还不是普通按钮是element ui 的那种 el-dropdown trigger ="click" 先说普通的div防止冒泡 //1.正常的情况下使用 $("#div2").click(function(e){ e.stopPropagation(); }); //2.动态监听 $("#div2").live('click',function(e){ e.stopPropagation();//此处终止事件冒泡 },false); //3 dom document.getElementById( ' #div2 ' ).addEventListener( ' click ' ,function(e){ e.stopPropagation(); // 阻止它的冒泡事件 }, false ); // 在子级标签添加属性 onClick= " event.cancelBubble = true" 在vue中 按钮类 可以使用 @click.stop 直接加在按钮上就可以 el-dropdown 类型 在整个外面套一层div然后再div上面加 @click.stop = "" 就可以 来源: oschina 链接: https://my.oschina.net/u/3774949/blog/4456615

selenium---Css定位方法

自闭症网瘾萝莉.ら 提交于 2020-08-15 07:39:56
  我们继续研究定位方法,还是那一句话,定位方法不会,就没有办法进行代码点点点。上一篇介绍了XPath的方法,这一篇介绍一些Css,Css相比与XPath来说,更加复杂点,但是Css定位速度比XPath方法要快,书写更加简单。 Css 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS选择器可以较为灵活地选择控件的任意属性,一般情况下,CSS定位速度比XPath定位速度快。 Css学习文档: https://www.w3school.com.cn/cssref/css_selectors.asp Css选择器常用语法 选择器 例子 例子描述 . class .intro 选择 class="intro" 的所有元素。 # id #firstname 选择 id="firstname" 的所有元素。 * * 选择所有元素。 element p 选择所有 <p> 元素。 element , element div,p 选择所有 <div> 元素和所有 <p> 元素。 element element div p 选择 <div> 元素内部的所有 <p> 元素。

C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度

回眸只為那壹抹淺笑 提交于 2020-08-15 07:31:30
在阅读本文之前,我期望你能了解基础的 PPT 解析内容,或看我的入门级博客。本文将告诉大家如何从 PPT 里面解析出通用元素的 x 和 y 的值,以及元素的宽度和高度的值 在开始之前请看 C# dotnet 使用 OpenXml 解析 PPT 文件 在拿到 slidePart.Slide.CommonSlideData.ShapeTree 里面的元素,几乎所有元素都存在坐标和宽度高度,这里的元素我称为通用元素,也就是不是特定的如形状、图片元素 此时的元素应该是继承 OpenXmlElement 类,在这个类里面可以通过 GetFirstChild 找到 ShapeProperties 的值 var shapeProperties = element.GetFirstChild<ShapeProperties>(); 上面代码的 element 是 OpenXmlElement 类 拿到了 ShapeProperties 实际上就是 PPT 文件的 p:sppr 内容,在 PPT 里面将会用如下格式设置元素里面的值中 a:xfrm 就是 Transform2D 请看下面 <p:sppr> <a:xfrm> <a:off x="3292475" y="1300390"> </a:off> <a:ext cx="6096000" cy="3429000"> </a:ext> </a

appium---PO模型设计

馋奶兔 提交于 2020-08-15 07:13:32
   我们在做自动化的时候应该都听过PO模型,那么什么是PO模型呢?PO模型在自动化中的作用是什么呢? PO模型 PO其实就是:、Page Object Model,也称作为POM模型,PO其实是一种设计模式,已经在自动化测试中流行起来,以增强测试维护并减少代码重复。页面对象是面向对象的类,用作页面的接口和被测设备。 然后,只要测试需要与该页面的UI进行交互,这些测试便会使用该页面对象类的方法,其好处在于,如果页面的UI发生了更改,则无需更改测试本身,只需更改其中的代码即可。页面对象需要更改。 随后,所有支持该新UI的更改都位于一个位置。其实说到低就是一句话:把每一个页面当作一个类,把页面上的元素信息和代码操作分离开,然后方面后面我们进行管理代码和元素内容 PO分层 PO分层也就是对我们自动化代码进行分层具体可以分为以下基层 1、基础层:封装一些定位方法,点击,输入,滑动等操作 2、公用层:获取元素方法,操作元素方法,获取CMD信息等方法 3、业务层:页面元素信息。 4、逻辑层:一些功能,比如登录,注册。 5、数据层:测试信息存放地方 emmm,这里是安静这边自身的了解,当然可能每个人对PO分层的理解不同,可能大佬们分的比我这里更加详细。(一起分享,共同学习) 这里安静简单拿项目来进行实际介绍下PO内容 首先我们先看以前如何编写测试用例的 # coding:utf-8 from

关于微信公众号图片防盗链问题的解决办法

六月ゝ 毕业季﹏ 提交于 2020-08-15 06:50:20
对于网页里引用微信公众号图片时出现的"此图片来自微信公众平台, 未经允许不可饮用"的问题, 能搜索到的解决方案不多, 除去已经被和谐掉的, 大概可以分为两种: 第一种, 更改图片src, 例如 options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;   但这种加跳板的方式受制于跳板的状态, 如果cores-anywhere.herokuapp.com停止服务了, 那么图片还是不能显示出来. 所以这种方法不予考虑. 第二种, 嵌套iframe   这里参考了 https://www.cnblogs.com/ixysy/p/4983891.html 的解决方案, 但是这种方案并不能解决网页里有多张图片的情况, 会导致只有最后一张图片能正常显示.   不过既然第一步已经成功了, 后面就简单多了.   研究一下代码, 发现他给父页面window赋予了一个img属性, 然后把这个img显示进所有iframe里, 那我给每张图片都赋予一个不同的属性不就行了?    $(function () { $(".xiangxi img").each(function (index, element) { var img = $(this); var img_src = img.attr("src"); if (img

基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件

懵懂的女人 提交于 2020-08-15 05:43:05
目录 1. 前言 2. 关于vue-simple-uploader 3. 基于vue-simple-uploader封装全局上传组件 4. 文件上传流程概览 5. 文件分片 6. MD5的计算过程 7. 秒传及断点续传 7.1 对于前端来说 7.2 前端做分片检验:checkChunkUploadedByResponse 8. 源码及后记 8.1 关于第一个分片丢失问题 2019/8/6更新 1. 前言 之前公司要在管理系统中做一个全局上传插件,即切换各个页面的时候,上传界面还在并且上传不会受到影响,这在vue这种spa框架面前并不是什么难题。然而后端大佬说我们要实现 分片上传 、 秒传 以及 断点续传 的功能,听起来头都大了。 很久之前我写了一篇webuploader的文章,结果使用起来发现问题很多,且官方团队不再维护这个插件了, 经过多天调研及踩雷,最终决定基于 vue-simple-uploader 插件实现该功能,在项目中使用起来无痛且稳定。 如果你只是想实现基本的(非定制化的)上传功能,直接使用 vue-simple-uploader ,多读一下它的文档,不需要更多的二次封装。 如果你只是想实现全局上传插件,也可以参照一下我的实现。 如果你用到了分片上传、秒传及断点续传这些复杂的功能,恭喜你,这篇文章的重点就在于此。 本文源码在此: https://github.com