keys

Vue 中报错Duplicate keys detected: '74004'. This may cause an update error

南笙酒味 提交于 2020-03-14 20:39:11
问题及解决办法 vue项目中偶尔会报这样一个错: Duplicate keys detected: '74004'. This may cause an update error 报这个错说明在你的 v-for 循环里, key 值可能重复了。 重复的 key 会造成渲染错误。 报错的原因是我一开始没有添加 key 属性,报错代码片段如下: <template> <vue-aplayer :audio="audio" :lrc-type="3" :fixed='fixed' :autoplay='autoplay' :order='order' :volume='volume' :theme='theme' :listFolded='listFolded ' /> </template> 添加上 key 之后不再报错 <template> <vue-aplayer :audio="audio" :lrc-type="3" :fixed='fixed' :autoplay='autoplay' :order='order' :volume='volume' :theme='theme' :listFolded='listFolded ' :key="audio.name" /> </template> 说明: audio 属性是我要遍历的列表, name 在我的列表中的主键

underscore.js源码解析【集合】

萝らか妹 提交于 2020-03-13 00:44:52
// Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `forEach`. // Handles raw objects in addition to array-likes. Treats all // sparse array-likes as if they were dense. /* params: 数组、对象或类数组对象,函数,函数执行环境 */ _.each = _.forEach = function(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) {// 数组或类数组 for (i = 0, length = obj.length; i < length; i++) { iteratee(obj[i], i, obj);// item index obj } } else {// 对象 var keys = _.keys(obj);// 返回键的数组 for (i = 0, length = keys.length; i < length; i++) {

php敏感字过滤替换

旧时模样 提交于 2020-03-12 04:32:27
      基于使用thinkphp5的框架, $keys = Db::table("keywords")->field('name')->select();//获取敏感关键字列表 $keystr = array_column($keys,'name');//提取敏感关键字name $content = str_replace($keystr,"**",$content);//替换html的关键字        来源: https://www.cnblogs.com/ysbl/p/12466864.html

二叉树的基础遍历---前序遍历,中序遍历以及后序遍历

早过忘川 提交于 2020-03-10 05:08:35
二叉树的基础遍历 1:前序遍历 :先访问根结点,然后再访问左子树,最后访问右子树; 2:中序遍历 :先访问左子树,然后再访问根结点,最后访问右子树; 3:后序遍历 :先访问左子树,然后再访问右子树,最后访问根结点; 示例如下: 前序遍历的API设计: public Queue preErgodic():使用前序遍历,获取整个树中的所有键 private void preErgodic(Node x,Queue keys):使用前序遍历,把指定树x中的所有键放入到keys队列中 实现步骤: 把当前结点的key放入到队列中; 找到当前结点的左子树,如果不为空,递归遍历左子树; 找到当前结点的右子树,如果不为空,递归遍历右子树; 代码实现: //使用前序遍历获取整个树中所有的键 public Queue < Key > preErgoidic ( ) { Queue < Key > keys = new Queue < > ( ) ; preErgoidic ( root , keys ) ; return keys ; } //使用前序遍历获取指定树x的所有键,并放到Keys队列中 private void preErgoidic ( Node x , Queue < Key > keys ) { if ( x == null ) { return ; } /

项目前导知识的学习—-01—(Redis内存数据库、Redis、redis常用五大数据类型:string/list/hash/set/Zset、Python操作Redis、Redis主从配置)

限于喜欢 提交于 2020-03-10 04:01:13
1、Redis内存数据库 背景 随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。 数据库的发展历史 1.在互联网+大数据时代来临之前,企业的一些内部信息管理系统,一个单个数据库实例就能满足系统的需求 单数据库实例 2.随着系统访问用户的增多,数据量的增大,单个数据库实例已经满足不了系统的读取需求 缓存(memcache)+单数据库实例 3.缓存可以缓解系统的读取压力,但是数据量的写入压力持续增大; 缓存+主从数据库+读写分离 4.数据量再次增大,读写分离以后,主数据库的写库压力出现瓶颈; 缓存+主从数据库集群+读写分离+分库分表 5.互联网+大数据时代来临,关系型数据库不能很好的存取一些并发性高,实时性高的,并且数据格式不固定的数据。 nosql+主从数据库集群+读写分离+分库分表 2、Redis Redis是一个高性能的,开源的,C语言开发的,键值对存储数据的nosql数据库。 NoSQL:not only sql,泛指非关系型数据库 Redis/MongoDB/Hbase Hadoop 关系型数据库:MySQL、oracle、SqlServer Redis特性 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中

全国图书馆参考咨询联盟模拟登陆及爬取可爬取的图片

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 11:59:12
一、编程思路 1.模拟登陆 采用selenium PhantomJS 采用Chrome Firefox 这些,我的电脑无法截取验证码位置,读者可以自行尝试 验证码识别可采用tesserocr 我采用手动输入 2、查询,获取搜索框,用户输入关键字并查询 3、页面信息,F12查看即可 ,若采用find_element_by_xpath()查询需注意element 返回是第一个节点信息 elements返回是一个列表 4、书本具体信息、F12查看,后面操作很简单 5、文献传递页面、这个地方是最难的,右键查看文献传递这个按钮,点击其中href是无法进入的,这个只是一种绑定关系,需要仔细观察进入文献传递页面前后的network中第一个文本中的信息,里面存在很多url, 只有refer 点击可以进入,分析refer url里面的元素,在进入前的那个页面的url可找到,后面采用切片即可 6、下载书名页...............,此处我采用的是观察图片的链接直接的关系,从而获取,这个地方需要注意的是,图片需要不断的滑动滑动条才能加载图片,否则无法下载 7、保存图片 ,注意 'w' 和‘wb’使用即可 8、最后需要注意爬取频率,否则很容易被发现。 from selenium import webdriver import time #import tesserocr import

Selenium学习(2) 元素定位

爷,独闯天下 提交于 2020-03-07 10:59:55
元素的定位是自动化测试的核心,想要操作一个元素,首先应该识别这个元素。 webdriver提供一个一系列的元素定位方法,常用的有以下几种: id name class name link text partial link text tag name xpath css selector Frame 嵌套页面元素定位 By 元素定位:id、name、class_name 示例: from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("www.baidu.com") sleep(2) #driver.find_element_by_id("kw").send_keys("测试一") #driver.find_element_by_name("wd").send_keys("测试二") driver.find_element_by_class_name("s_ipt").send_keys("测试三") sleep(3) driver.find_element_by_id("su").click() sleep(3) driver.quit() 元素定位:link_text 示例: from selenium import webdriver from

第 4 章 WebDriver API - 4.2 控制浏览器 - Selenium3 自动化测试

一曲冷凌霜 提交于 2020-03-06 10:03:04
4.2 控制浏览器 WebDriver 主要提供操作页面上各种元素的方法 ,同时 ,它还提供了操作浏览器的一些方法 ,如控制浏览器窗口大小 、操作浏览器前进或后退等 。 4.2.1 控制浏览器窗口大小 有时候我们希望浏览器能在某种尺寸下运行。例如,可以将 Web 浏览器窗口设置成移动端大小(480x800),然后访问移动站点。WebDriver 提供的 set_window_size()方法可以用来设置浏览器窗口大小。 更多情况下,我们希望 Web 浏览器在全屏幕模式下运行,以便显示更多的元素,可以使用 maximize_window()方法实现,该方法不需要参数。 4.2.2 控制浏览器后退、前进 浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver 还提供了对应的 back()和 forward()方法来模拟后退和前进按钮。下面通过例子演示这两个方法的使用。 为了看清楚脚本的执行过程,这里每操作一步都通过 print()打印当前的 URL 地址。 4.2.3 模拟浏览器刷新 有时候需要手动刷新(按「F5」键)Web 页面,可以通过 refresh()方法实现。 4.3 WebDriver 中的常用方法 前面我们学习了定位元素的方法,但定位只是第一步,定位之后还需要对这个元素进行操作,比如,单击(按钮)或输入(输入框)。 (1)clear():清除文本

centos6搭建open***

筅森魡賤 提交于 2020-03-05 18:25:02
centos6搭建open*** http://www.centoscn.com/CentosServer/test/2014/1120/4153.html 第二种方法: https://www.cnblogs.com/kevingrace/p/5799403.html Open***是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件。使用Open***可以方便地在家庭、办公场所、住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道。 使用Open***配合特定的代理服务器,可用于访问Youtube、FaceBook、Twitter等受限网站,也可用于突破公司的网络限制。 一、服务器端安装及配置 服务器环境:干净的CentOS6.3 64位系统 内网IP:10.143.80.116 外网IP:203.195.xxx.xxx Open***版本:Open*** 2.3.2 x86_64-redhat-linux-gnu 1、安装前准备 关闭selinuxsetenforce 0sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config # 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度yum -y install openssl openssl

Redis (error) CROSSSLOT Keys in request don't hash to the same slot

我的梦境 提交于 2020-03-04 20:46:25
在解决这个问题之前我们先来理解几个概念 哈希槽(hash slot) 哈希槽是一个key的集合,Redis共有16384个哈希槽,每个key会通过算法来决定key被放到哪个槽中,单点rendis所有的哈希槽在一起,集群中每个节点负责一部分哈希槽。 以有三个节点的集群为例: 节点A包含0到5500号哈希槽 节点B包含5501到11000号哈希槽 节点C包含11001到16384号哈希槽 这样的设计有利于对集群进行横向伸缩,若要添加或移除节点只需要将该节点上的槽转移到其它节点即可。 HashTag 产生:并集、差集计算,rename等操作时用到的key需要在同一个哈希槽中 功能:可以把hashtag相同的key定位到同一个哈希槽 用法:用{}包裹key的一个子串,如{user:}1, {user:}2,hashtag不支持嵌套,会将第一个{和第一个}中间的内容作为hash值。若花括号中不包含任何内容则会计算整个key的值,如{}user: 注意:hashtag可能会使过多的key分配到同一个slot中,造成数据倾斜影响系统的吞吐量,务必谨慎使用 解决方案 用{}包裹key的一个子串,如{user:}1, {user:}2,使操作计算用到的key在同一个哈希槽中。 注:慎用并集、差集计算,rename等操作,这些操作都是复杂度为O(n),用的不好可能会造成阻塞。 来源: CSDN 作者: