last

vue项目中的去抖与节流

喜欢而已 提交于 2020-02-22 04:48:21
// 防抖 export function _debounce(fn, delay) { var delay = delay || 200; var timer; return function () { var th = this; var args = arguments; if (timer) { clearTimeout(timer); } timer = setTimeout(function () { timer = null; fn.apply(th, args); }, delay); }; } // 节流 export function _throttle(fn, interval) { var last; var timer; var interval = interval || 200; return function () { var th = this; var args = arguments; var now = new Date(); if (last && now - last < interval) { clearTimeout(timer); timer = setTimeout(function () { last = now; fn.apply(th, args); }, interval); } else { last = now; fn

Mybatis——动态SQL语句!

不问归期 提交于 2020-02-21 07:25:28
含义 动态的SQL语句,就是指在运行的时候,根据Mapper.xml中的语句,来决定方法传入参数的使用。 使用 <if test=""></if>标签 Mapper.xml中的配置 if 判断 参数传入的值,判断是否可以使用,再执行SQL语句, 缺点 如何传入的值分别是null,1时or 符号不会消失,这样sql语句识别不出来。 < select id = "queryUserByUser" resultType = "com.atguigu.pojo.User" parameterType = "com.atguigu.pojo.User" > select `id` , `last_name` lastName , `sex` from t_user where < if test = "lastName!=null" > last_name = # { lastName } < / if > < if test = "sex==0||sex==1" > or sex = # { sex } < / if > < / select > <where ></where>标签 Mapper.xml中的配置where能有效帮助我们,添加和去除查询条件 前面 的关键字。 缺点 不能去除查询条件 后面 的多余的关键。 < select id = "queryUserByUser"

循环列表的实现

最后都变了- 提交于 2020-02-21 02:38:38
我们将在单链表的基础上讨论循环链表的实现,循环链表中的节点node沿用单链表中的节点。循环链表的算法思想基本上与单链表没有什么差异,唯一比较大的差异就是原来我们通过判断 node.next==null 来判断链表的结束,现在改成判断 node.next==Head ,因为我们已经把尾节点链接到头节点上,在逻辑上形成循环链表。具体的代码如下所示 using System ; using System . Collections . Generic ; using System . Linq ; using System . Text ; namespace DataStructure { /// <summary> /// 循环链表 /// </summary> /// <typeparam name="T"> 类型 </typeparam> class LoopList < T >: IListDS < T > { class Node < T > { private T data ; /// <summary> /// 数据域 /// </summary> public T Data { get { return data ; } set { data = value ; } } private Node < T > next ; /// <summary> /// 引用域 //

分库设计中的主键选择

南笙酒味 提交于 2020-02-20 08:12:26
在先前的文章《 又拍网架构中的分库设计 》中, 我有提到过MySQL分库设计中的主键选择问题。在这篇文章里我想对这个问题进行展开讨论, 以此作为对上一篇文章的一个补充。 前面提到 又拍网 采用了全局唯一的字段作为主键。比如拿照片表为例, 虽然不同用户的照片数据存放在不同的Shard(或者说MySQL节点/实例, 请参考《 又拍网架构中的分库设计 》)上, 但是每一张照片拥有整个站点唯一的ID作为标示。 为什么要全局唯一? 我们在对数据库集群作扩容时,为了保证负载的平衡,需要在不同的Shard之间进行数据的移动, 如果主键不唯一,我们就没办法这样随意的移动数据。起初,我们考虑采用组合主键来解决这个问题。 一般会以 user_id 和一个自增的 photo_id 来作为主键,这的确能解决移动数据可能带来的主键冲突问题, 但是就像在“ 又拍网架构中的分库设计 ”中描述的那样当Shard之间的数据发生关系后, 我们需要用更多的字段来组成主键以保证唯一性,因此主键的索引会变的很大,从而影响查询性能, 同时也会影响写入性能。 其次,每个Shard由两台MySQL服务器组成,而这两台服务器采用master-master的复制方式, 以保证每个Shard一直可写。master-master复制方式必须保证在两台服务器上各自插入的数据有不同的主键, 不然当复制到另外一台时就会出现主键重复错误

获取数据表最后最后访问,修改,更新,扫描时间

北慕城南 提交于 2020-02-19 16:49:00
数据分析,需要获取数据每一张表的最后访问,修改,更新,扫描时间等: SELECT [Table Name] = [name],[Create Date] = create_date,[Modify Date] = modify_date,[Last User Update] = last_user_update,[Last User Scan] = last_user_scan FROM sys.tables AS t INNER JOIN (SELECT [TableName] = OBJECT_NAME(object_id),last_user_update, last_user_scan FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID('Test')) AS sd ON (t.[name] = sd.[TableName]) GO Source Code 来源: https://www.cnblogs.com/insus/p/12331728.html

孤荷凌寒自学python第九十四天认识区块链008

不打扰是莪最后的温柔 提交于 2020-02-18 22:22:50
【主要内容】 今天开始继续分析从github上获取的开源代码怎么实现简单区块链的入门知识,共用时间38分钟。 (此外整理作笔记花费了约50分钟) 详细学习过程见文末学习过程屏幕录像。 今天完成了【blockchain.py】文件大部分源代码的学习分析,添加了批注,对实现原理有了比较全面的理解。 主要通过以下网络资源进行学习: http://docs.jinkan.org/docs/flask/quickstart.html 密码学部分参看了以下文章: https://www.jb51.net/article/86022.htm 【学习笔记】 一、对【blockchain.py】文件的理解批注第一天 今天的学习笔记都作到了注释文本中(学习分析的思维过程可见我的屏幕录像): 今天主要是从全局实现过程进行研读批注,每个方法函数的内部细节还没有细致思考。 下面是已对【blockchain.py】进行详细注释的源代码 ``` ''' title : blockchain.py description : A blockchain implemenation author : Adil Moujahid date_created : 20180212 date_modified : 20180309 version : 0.5 usage : python blockchain.py

后缀自动机专题

一笑奈何 提交于 2020-02-17 15:49:10
如果不算pre指针的话后缀自动机就是一个DAG,这是它能很方便地进行dp的前提。 而pre指针返回什么呢,返回的就是上一个的前缀包含改结点所代表子串的那个后缀,和AC自动机上的fail指针很像,都是为了匹配。我目前学得不深,看不出和AC自动机的fail指针有什么区别,用起来也几乎一样。 相比于字典树和回文树,后缀自动机每个结点会有多个父结点,可以表示多种子串(从根节点到它的每条路径都是一个子串),因此子串的信息只能在路径中记录,比如长度,而该子串说记录的长度step,则是根结点到它的最远距离,而某个子串的长度就是该代表该子串的路径的长度了,并不一定是某个结点的step。 spoj1811 求两个串的最长公共子串的长度。 对A串建立后缀自动机,对B串进行匹配,如果匹配失败,沿着失败指针往回走到第一个能匹配的位置继续匹配(看起来似曾相识?没错,这不是AC自动机的过程吗。。。),当然如果到根节点还不能继续匹配,那就只有从头再来了。这里随时记录长度更新答案即可。 当然后缀数组也可以做,把两个串拼接起来,求lcp即可。。。然后后缀自动机好快。。。。在spoj上居然60ms过了。。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a))

基于jquery的弹幕实现

风格不统一 提交于 2020-02-17 10:27:45
基于jquery的弹幕实现 前几天,需要做一个弹幕展示效果,看了网上很多资料,但是很不凑巧,都不能满足自己的需求和功能点,但是总不能放弃吧,那么就自己写一个,今天把成果分享给大家,首先说一下市面上比较流行的弹幕插件吧: 1.有关视频的弹幕 http://www.jq22.com/jquery-info2123 jquery.barrager.js 聊天弹幕 http://www.bootstrapmb.com/item/6429 当然网上也有很多插件,重点说一下我看的这三款,第一款如果不碰撞还可以,但是不适合vue,需要自己改造,第二个会出现一个问题,弹幕数量过多时整体会卡顿,不适合大型弹幕效果,需要大家限制一下加载的条数; 下面先把我的简单的demo呈现给大家: 样式部分: .barrage_box{ position: absolute; left:1080px; top:170px; background:rgba(208,70,91,0.56); border:1px solid rgba(255,255,255,0.56); border-radius: 30px; padding:8px 24px; line-height: 40px; font-size:24px; color:#fff; white-space: nowrap; } 这里需要注意一下

16、Nginx Rewrite重写

泄露秘密 提交于 2020-02-17 08:02:02
1.Rewrite基本概述 1.1.什么是rewrite Rewrite主要实现url地址重写, 以及地址重定向,就是将用户请求web服务器的地址重新定向到其他URL的过程。 1.2.Rewrite使用场景 1.地址跳转,用户访问www.xuliangwei.com/class这个URL时,将其定向至一个新的域名class.xuliangwei.com 2.协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式 3.伪静态,将动态页面显示为静态页面方式的一种技术, 便于搜索引擎的录入, 同时减少动态URL地址对外暴露过多的参数, 提升更高的安全性。 4.搜索引擎,SEO优化依赖于url路径, 好记的url便于支持搜索引擎录入 1.3.Rewrite配置示例 #rewrite表达式可以应用在server,location, if标签下 Syntax: rewrite regex replacement [flag]; Default: -- Context: server, location, if #用于切换维护页面场景 #rewrite ^(.*)$ /page/wh.html break; 2.Rewrite标记Flag rewrite指令根据表达式来重定向URI,或者修改URI字符串。 每行rewrite指令最后跟一个flag标记

Mysql联合索引的数据结构(B+Tree)

ぃ、小莉子 提交于 2020-02-17 02:09:33
B+Tree中的data存储last_name,first_name,dob三个字段信息,类似于一个主键索引的中的一个字段,将三个字段组合在一起,比较的时候和单独的一个字段的区别在于,先比较last_name,然后比较first_name,最后再比较dob,执行这样的规则。 综上所述:这样就比较好理解Mysql索引的最左前缀原理 来源: CSDN 作者: 社交恐惧的岛主 链接: https://blog.csdn.net/a1_HelloWord/article/details/104349335