发表于2017-08-152019-01-01 作者 wind 使用方法主要为两个步骤: 1、给可以拖动的元素添加属性 draggable=‘true’,绑定dragstart事件,用于给传输对象保存内容...DataTransfer.setDragImage() Set the image to be used for dragging if a custom one is desired. 2、给接收的元素添加...drop事件阻止默认行为防止页面跳转,用来接收传输对象带来的数据,添加dragover事件阻止默认行为表示接收处理拖拽。
cxt.strokeStyle = color; //设置画笔的颜色 cxt.translate(550, 310); //重置异次元空间的原点坐标...两个重要的点 // 密度是控制绘制的数量 dis_x = Math.abs(x - pre_star.x); // 距离是在已绘制的点基础上...、控制点的间距 // 控制绘制密度 和 控制点之间的距离 不是一个功能哦(需要实际操作去体会, 文字很难表述~.~) // 没有控制距离的话 绘制的图形...,难度也很大,涉及了很多算法的实现,只是刚接触,需要更多的练习。...本文章花了很多时间搜集特效代码,对搜集的代码也自己认真的改善,和谐、整理后可以直接使用的。
RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。...RethinkDB性能 RethinkDB的性能可以参考此图(更多性能测试请看这里),其性能的提高主要在于其对SSD的充分利用 RethinkDB应用场景 它可以用来替代Memcached作为数据缓存层...(如:要求快速的服务启动,在数据量超出内存大小后还要有高的性能,处理各种不稳定的读写压力,处理大量数据等) 提供性能与数据稳定性之间的精细调控 大大提高你的缓存层和key-value存储的性能,在你现有的硬件条件下...,能支持更高的应用负载。...使用费用 RethinkDB目前提供两个版本的支持,一个免费版的,一个商用版的。商用版本的价格是每年每台机器$1500。免费版提供目前所有功能,提供后续所有安全相关的升级。
unordered_map和unordered_set进行介绍 unordered_map unordered_map的简单介绍 unordered_map是存储键值对的关联式容器...,unordered_map比map的性能更好,尤其是find的使用 unordered_map的接口说明 接口说明我们在之前的很多stl容器中都演示过,这里不做过多的介绍 unordered_map的构造...kw=unordered_set 关联式容器的底层结构 我们开头在介绍unordered系列的关联式容器时就有提到,之所以他的综合效率比较高,是因为其底层使用了哈希结构。...哈希函数设计原则: 哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0到m-1之间,并且哈希函数计算出来的地址能均匀分布在整个空间中 下面我们就对常见的哈希函数进行简单的介绍...优点:简单、均匀 缺点:需要事先知道关键字的分布情况 使用场景:适合查找比较小且连续的情况 2.
Dockerfile是Docker打包镜像时使用的说明文件,类似于构建rpm包的spec文件。里面由一些指令和配置构成。本文将一些Dockerfile的编写。...其实我们可以把它看成就是spec的一个扩展版。 总的语法也和spec很像,以这样的语句来表示。支持#注释。 命令 参数 举个栗子 这是个很简单的Dockerfile。...安装命令,RUN 这里不同于rpm,rpm的spec定义的是安装时执行的命令。也就是安装的这个命令是在软件部署(yum install xxx)时执行的。...下面这个类似函数穿参的做法,和exec类函数类似。 在例子中,就用了yum直接安装了memchache。这应该是最简单的移植方式。 加入文件,ADD 这是将外部文件复制到镜像中的指令。...ADD 是相对被构建的源目录的相对路径,可以是文件或目录的路径,也可以是一个远程的文件url; 是容器中的绝对路径 运行命令 ENTRYPOINT和CMD是容器启动时的相关命令
三种mq对比 使用消息队列有解耦,扩展性,削峰,异步等功能,市面上主流的几款mq,rabbitmq,rocketmq,kafka有各自的应用场景。...kafka,有出色的吞吐量,比较强悍的性能,而且集群可以实现高可用,就是会丢数据,所以一般被用于日志分析和大数据采集。...rocketmq,高可用,高性能,高吞吐量,支持多种消息类型,比如同步,异步,顺序,广播,延迟,批量,过滤,事务等等消息,功能比较全面,只不过开源版本比不上商业版本的,加上开发这个中间件的大佬写的文档不多...不同的消息中间件对于消息丢失也有不同的解决方案,先说说最容易丢失消息的kafka吧。...一般在不涉及金额的情况下,均衡考虑可以使用1,保证消息的发送和性能的一个平衡。
Gitlab 是使用 ruby 编写的,好几年之前刚出来的时候,一台1G内存的虚拟主机连安装运行都做不到,着实震惊。...另一点就是功能,对于一般标准团队来说,gitlab的功能太过于丰富,这是往好的地方说,往坏的地方说就是它包含了太多不需要的东西,而这些东西还占用磁盘和运行时资源。...同时 Gitlab 的许可证政策对新的用户也不是非常友好,主要在于与其他平台的同步上面。...例如有一个下面的场景:你将代码提交到自己的服务器上后,如果希望能够自动同步到其他的平台上,比如 GitHub 或者从其他平台上镜像回来,Gitlab 的社区版本是做不到的。...于是着手查看开源的可选方案,很快就找到了golang 研发的gitea。 使用golang研发的软件分发都很容易,体积小,安装使用简单,运行时占用资源少。 且gitea的功能很完备。
在这个发展历程中有以下几个渐进的里程碑事件: 通过虚拟化技术将大型物理机虚拟成单个的VM资源。 将虚拟化集群搬到云计算平台上,只做简单运维。...因此,这个发展历程也是一场IT架构的演进,期间经历了一系列代际的技术变革,把资源切分得更细,让运行效率更高,让硬件软件维护更简单。...函数计算目前打通了多款产品的内部交互,通过控制台简单配置就可以高效的解决产品间连接问题。 事件触发场景常规做法: 设置消息通道接收事件,并编写业务代码。 购买服务器资源做后端数据处理。...内置打通多款产品,简单配置就可以无缝对接。 场景二:利用弹性扩容(视频直播多人连麦场景) ?...派单平台通知最近的骑手到最近的商家拿到服务并派送到客户手里。一个简单的流程图如下: ? 流程详解: 客户通知派单平台下单某商品。 派单平台通知最新骑手。 派单平台同时通知商家商品售卖出去。
1、简介 在本文中,我们将了解Caffeine,一个用于Java的高性能缓存库。 缓存和Map之间的一个根本区别是缓存会清理存储的项目。...一个清理策略会决定在某个给定时间哪些对象应该被删除,这个策略直接影响缓存的命中率——缓存库的一个关键特性。 Caffeine使用Window TinyLfu清理策略,它提供了接近最佳的命中率。...4、缓存值的清理 Caffeine有三种缓存值的清理策略:基于大小、基于时间和基于引用。 4.1、基于大小的清理 这种类型的清理设计为在超出缓存配置的大小限制时发生清理。...有两种获取大小的方法——计算缓存中的对象数,或者获取它们的权重。 让我们看看如何计算缓存中的对象数。...我们可以配置我们的缓存,允许缓存的键或值或二者一起的垃圾收集。
涉及到图形图像的编解码问题,总离不开分块的问题,今天给大家简单介绍下分块的东西: ---- 分块简单的介绍: 对于一个视频文件或者图像文件进行编码,给我们简单直观的最基本的单元,应该就是一张图片了...相信这个大家应该不陌生了,那就是width * height个像素点了,把像素点想象成一个很小很小的方块,那么一张图片本质上就是有width * height个小方块组成的,而每一个小方块有着不同的色度值...,较常见的有按4x4矩阵的方式进行处理,也就是最小的处理单元实际上是16个像素点,在此基础上做处理,如此处理的话,对于很多的计算,便可以按照数学上矩阵的一些算法进行处理了。...当然分块,目前来讲,4*4的块应该是最小的分割单位了,也有其他的分块方式,后续咱们再研究喽。接下来的系列分享中,很多都是基于4 * 4的块介绍的,所以不必诧异喽。 ---- 2....感兴趣的可以算一下哦, 480 * 360 和 10800 * 16的值是否是一样的吗?
前情回顾 webpack在前端的应用越来越广泛,似乎不少人对webpack的了解似乎并不是特别深入,所以需要花点时间去了解一些webpack的内容,先从loader说起。...链中的每个 loader 会将转换应用在已处理过的资源上。一组链式的 loader 将按照相反的顺序执行。...链中的第一个 loader 将其结果(也就是应用过转换后的资源)传递给下一个 loader,依此类推。最后,链中的最后一个 loader,返回 webpack 所期望的 JavaScript。...loader 可以是同步的,也可以是异步的。 loader 运行在 Node.js 中,并且能够执行任何操作。...总结 简单介绍一下loader javascript基础知识总结
首先会进行TCP的握手,即一次往返。然后开始TLS的握手。...TLS的握手主要由3个阶段来完成这两件事。 第一件事比较简单,只需要client告诉server自己支持的协议的版本和支持的加密套件,然后server选择并通知client。就可以啦。...这两个操作分别在握手的第一第二阶段完成。 第二件事就没那么简单来。协议规定,生成一个加密密钥需要三个随机数,其中前两个随机数分别在第一阶段和第二阶段,由client和server分别生成并告诉对方。...第三个随机数的交换要稍微复杂一点。 首先client在第二阶段得到来server的证书,证书中包含来server的公钥。...还会将前面的握手信息的摘要进行加密后传给server,server收到后将其解密,用于验证协商的密钥的一致性。
***WEB响应消息的响应状态行可分为三部分:http版本、状态代码和一条相关的提示信息,如:HTTP/1.1 200 OK HttpServletResponse中定义了几个用于产生HTTP消息的响应状态行的方法和对应各个响应状态码的常量...不同的是,addHeader() 方法可以增加同名的响应头字段(HTTP响应消息中允许同一名称的头字段出现多次),而 setHeader() 方法则会覆盖同名的头字段 void setIntHeader...例如,如果发送到客户端的内容是 jpeg 格式的图像数据,就需要将响应头字段的类型设置为 image/jpeg。...* 响应头消息的实用案例 Servlet的中文输出问题:浏览器接收到的中文字符并不是中文符号本身,它是某种字符集编码数据。同一中文字符可以用多种字符编码,而浏览器也要使用相应的字符集编码才能显示。...方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。
• canvas 其实对于HTML来说很简单,只是一个标签元素而已,自己并没有行为, 但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都 绘制到一块画布上,拥有绘制路径...所有的 标签只是图形的容器,必须使用JavaScript的 API 操作绘图。...标签: • getContext • 返回一个用于在画布上绘图的环境 <script type
# HBuilderX 自述文件 ---- HBuilderX,H是HTML的首字母,Builder是构造者,X是HBuilder的下一代版本。我们也简称HX。...HX是轻如编辑器、强如IDE的合体版本。...让我们简单了解下HX的特点 轻巧 仅10余M的绿色发行包(不含插件) 极速 不管是启动速度、大文档打开速度、编码提示,都极速响应 C++的架构性能远超Java或Electron架构 vue开发强化...清爽护眼 HX的界面比其他工具更清爽简洁,绿柔主题经过科学的脑疲劳测试,是最适合人眼长期观看的主题界面 详见 强大的语法提示 HX是中国唯一一家拥有自主IDE语法分析引擎的公司,对前端语言提供准确的代码提示和转到定义...(Alt+鼠标左键) 高效极客工具 更强大的多光标、智能双击…让字处理的效率大幅提升 了解HX的极客技巧,详见, 更强的json支持 现代js开发中大量json结构的写法,HX提供了比其他工具更高效的操作
什么是springboot Springboot使您可以轻松地创建独立的、生产级的基于Spring的应用程序,您可以“直接运行”,启动应用程序都需要非常少的 Spring配置。...这是官方对springboot的解释,官方已经说的很明白了,运行简便,不需要繁琐的配置。...原来运行项目需要配置相关的服务器,然后启动服务器才可以,而springboot专门提供了一个入口,启动起来相当简单。...而@EnableAutoConfiguration自动配置注解也是spring的注解,它会把一些常见配置自动注入,例如tomcat的端口号这类的。...而springboot的项目创建方式网上的文章千千万,也没必要再列一遍了。
该目录中存储的都是一些二进制文件,文件都是可以被运行的。 Dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。...Imp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。 Usr:存放的是用户自己安装的软件。类似于windows 下的program files。...Var:存放的程序/系统的日志文件的目录。 Mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。...隐藏的文档.开头 用法4 # ls -lh 路径v 含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候 以可读性较高的形式显示 ?...列的含义: UID:该进程执行的用户id; PID:进程id; PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程; C:Cpu的占用率,其形式是百分数; STIME
ChatGPT介绍: 一、ChatGPT是什么?...为了实现对话系统的自动化,OpenAI团队在GPT模型的基础上开发了GPT-2模型,它可以生成更加高质量的自然语言文本,并且可以实现一定程度的对话功能。...GPT-3模型的出现引起了广泛的关注和讨论,它被认为是自然语言处理领域的重大突破,将对话系统和人机交互带入了一个新的阶段。...满足人们的需要. 2、可以适应不同的对话场景 ChatGPT可以根据对话场景的不同而进行相应的调整,比如在智能客服中,它可以根据用户的问题给出相应的答案;在聊天机器人中,它可以模拟人类的对话风格,...5、对于数据的敏感性 ChatGPT的开发者非常重视对于数据的敏感性,因此对于一些可能引起争议的数据集(如暴力、种族歧视等),OpenAI公司已经禁止了它们的使用,以确保ChatGPT的安全和公正性。
欢迎大家给我留言,让我知道你们的想法。 0x00 相关背景介绍 Clickjacking(点击劫持)是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼在2008年首创的。...是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。...由于点击劫持的出现,便出现了反frame嵌套的方式,因为点击劫持需要iframe嵌套页面来攻击。 下面代码是最常见的防止frame嵌套的例子: if(top.location!...二、onBeforeUnload函数的利用: onBeforeUnload的介绍以及各种浏览器的支持情况请见: http://w3help.org/zh-cn/causes/BX2047 如下的防御代码...如果跟的参数中有变量在页面中显示的,会把变量过滤一遍再输出,但不会阻止跳转。 四、Referer检查的问题 有一些站点允许自己的域名嵌套自己,禁止外站对自己的嵌套。
int unitis表示速率的基本时间单位。...unitis值为 1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为 1000表示一秒(1000毫秒)时间单位内运动了多少个像素 float Velocity表示速率的最大值...: 当你须要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象 在 onTouchEvent 回调函数中,使用...当你须要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象 在 onTouchEvent 回调函数中,使用 addMovement(MotionEvent...) 函数将当前的移动事件传递给 VelocityTracker 对象 使用 computeCurrentVelocity (int units) 函数来计算当前的速度,使用 getXVelocity
领取专属 10元无门槛券
手把手带您无忧上云