element

vue性能优化

一笑奈何 提交于 2020-10-30 06:57:20
小编这一期跟大家讲一下关于优化Vue性能相关的知识,Vue众所周知,是一个轻量级的框架,源码仅仅为72.9KB,但是也有它自己的缺点,就是首屏加载会比较慢,因为和传统项目相比,Vue会在首屏加载的时候加载出所有的组件和插件,并且向服务器请求数据,导致可能有时候首屏加载的时间就会到4、5秒的样子。 但是这样做很明显是在挑战用户的耐心,按照惯例,最好能把加载时间控制在1秒左右。接下来小编讲一下Vue性能优化的两个个方向。 一.源码优化 1、代码模块化 ,咱们可以把很多常用的地方封装成单独的组件,在需要用到的地方引用,而不是写过多重复的代码,每一个组件都要明确含义,复用性越高越好,可配置型越强越好,包括咱们的css也可以通过less和sass的自定义css变量来减少重复代码。 2、for循环设置key值 ,在用v-for进行数据遍历渲染的时候,为每一项都设置唯一的key值,为了让Vue内部核心代码能更快地找到该条数据,当旧值和新值去对比的时候,可以更快的定位到diff。 3、Vue路由设置成懒加载 ,当首屏渲染的时候,能够加快渲染速度。 4、更加理解Vue的生命周期 ,不要造成内部泄漏,使用过后的全局变量在组件销毁后重新置为null。 5、可以使用keep-alive ,keep-alive是Vue提供的一个比较抽象的组件,用来对组件进行缓存,从而节省性能。 二.打包优化 1、修改vue

Python使用Selenium实现淘宝抢单的流程分析

为君一笑 提交于 2020-10-29 16:21:20
最近 ,小明为了达成小姐姐的愿望,在某宝买到心仪的宝贝,再加上又迷上了python,就通过python轻而易举地实现了(个人声明:对Java来说,这并不是背叛)。 需求分析&前期准备 需求其实很简单,正常购物。那我们平常的购物流程如下所示: 开始之前,我们需要准备一下程序运行环境。 环境系统:Windows/Mac OS Python版本:3.7.2 为了让程序模拟我们每一步操作,给大家介绍一个利器:Selenium Selenium测试同学应该会感觉特别亲切。它是一个自动化测试工具,通过它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。 Selenium的安装 运行如下命令: pip install selenium 但若想使用Selenium成功调用Chrome浏览器完成相应的操作,我们还需要一个媒介与浏览器对接。小明本次使用的是Chrome浏览器,因此就需要通过ChromeDriver来驱动。 ChromeDriver的安装 这里是谷歌浏览器ChromeDriver的官方下载地址: https://chromedriver.storage.googleapis.com/index.html 我们需要根据自己的Chrome浏览器版本,找到相应版本的ChromeDriver,再根据你电脑系统的平台类型进行下载、解压。 windows

DIEN: 阿里点击率预估之深度兴趣进化网络

限于喜欢 提交于 2020-10-29 14:01:10
广告推荐算法系列文章: 莫比乌斯: 百度的下一代query-ad匹配算法 百度凤巢分布式层次GPU参数服务器架构 DIN: 阿里点击率预估之深度兴趣网络 基于Delaunay图的快速最大内积搜索算法 DIEN: 阿里点击率预估之深度兴趣进化网络 EBR: Facebook基于向量的检索 阿里巴巴电商推荐之十亿级商品embedding Overall 这篇文章所介绍的模型,用于在用户没有输入搜索词来表达意图的时候,给用户推荐商品的场景。这里的收费方式一般是CPC,即Cost per Click,每次点击收费,提高CTR能直接提高收入,同时改进用户体验。 在 DIN: 阿里点击率预估之深度兴趣网络 中,我们介绍了Attention在阿里点击率预估中应用,重点则是针对某个候选广告,用attention对用户行为序列进行权重计算,得到用户针对这个候选广告的兴趣向量,然后去做点击率预估。 上面的做法能够捕捉到用户多样的兴趣,但是缺点就是用户行为序列中的条目是被等价对待的,并没有考虑到用户兴趣的漂移。 比如,随着风潮的变化,用户喜欢的衣服风格可能发生变化;类似的,用户在某个时间段会关注一类书籍,但是过了这个时间段,可能会关注其他类型的书籍,或者其他商品比如衣服。 综上,用户的兴趣有如下特点: 多样性,用户感兴趣的商品会有很多种类。 进化性,用户的兴趣会随着时间发生变化

爬取淘宝商家货物简单销售数据(销量,价格,销售地,货物名称)

寵の児 提交于 2020-10-29 10:40:28
爬取淘宝商家货物简单销售数据(销量,价格,销售地,货物名称) 爬取淘宝店家数据信息 爬取淘宝商家货物简单销售数据(销量,价格,销售地,货物名称) 一、登录淘宝,获取Cookies 二、输入关键字,翻动页码,查看源码以及回应内容的变化。并请求数据 三、分析数据网页源码,获取数据 四、存储数据,并将数据按照销量降序排列 前天接一个爬取淘宝商家(自行车)信息的请求,要求数据按照其销售量排行。 完成该请求后,爬取数据(李宁卫衣)如下: 接下来看如何实现的? 首先打开淘宝网:https://www.taobao.com/,在搜索栏输入自行车,结果发现页面转跳到https://login.taobao.com/member/login.jhtml 淘宝登录页面,要求登录才能进行关键字搜索获取数据。(需要登录的时候应当想到cookies) cookies 及其用处: 当我们登录某网站时,服务器会生成一个cookies,包含有用户登录等信息,与当前账号绑定,浏览器将此cookies存储到。下一次,浏览器带着cookies访问网站,就不需要在输入账号密码。注意cookies是有时效性的。 所以,目标明确,第一步,获取用户登录的cookies 一、登录淘宝,获取Cookies 需要登录淘宝页面获取cookies,才能执行后续操作。而模拟登录有两种方法: 搞清淘宝登录机制,修改参数登录。(借鉴裸睡的猪

XLSXCovertCSVReader 工具类(XML )

不羁岁月 提交于 2020-10-29 09:16:56
import cn.com.amway.msgcenter.console.util.StringUtil; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackageAccess; import org.apache.poi.ss.usermodel.BuiltinFormats; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable; import org.apache.poi.xssf.eventusermodel.XSSFReader; import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import

vue.js相关UI组件收集

谁说胖子不能爱 提交于 2020-10-29 08:53:43
内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 ###UI组件 element ★9689 - 饿了么出品的Vue2的web UI工具套件 Vux ★6927 - 基于Vue和WeUI的组件库 mint-ui ★4870 - Vue 2的移动UI元素 iview ★4782 - 基于 Vuejs 的开源 UI 组件库 Keen-UI ★2401 - 轻量级的基本UI组件合集 vue-material ★2294 - 通过Vue Material和Vue 2建立精美的app应用 muse-ui ★2052 - 三端样式一致的响应式 UI 库 vuetify ★1745 - 为移动而生的Vue JS 2组件框架 vonic ★1546 - 快速构建移动端单页应用 eme ★1402 - 优雅的Markdown编辑器 vue-multiselect ★1193 - Vue.js选择框解决方案 vue-table ★844 - 简化数据表格 VueCircleMenu ★790 - 漂亮的vue圆环菜单 vue-chat ★755 - vuejs和vuex及webpack的聊天示例 radon-ui ★643 - 快速开发产品的Vue组件库 vue-waterfall ★615 - Vue.js的瀑布布局组件 vueAdmin ★612 -

[LeetCode] 227. Basic Calculator II 基本计算器 II

為{幸葍}努か 提交于 2020-10-29 05:15:24
Implement a basic calculator to evaluate a simple expression string. The expression string contains only non-negative integers, + , - , * , / operators and empty spaces . The integer division should truncate toward zero. You may assume that the given expression is always valid. Some examples: "3+2*2" = 7 " 3/2 " = 1 " 3+5 / 2 " = 5 Note: Do not use the eval built-in library function. Credits: Special thanks to @ts for adding this problem and creating all test cases. Java: public int calculate(String s) { int md=-1; // 0 is m, 1 is d int sign=1; // 1 is +, -1 is - int prev=0; int result=0; for

.Net 配置的简陋解决方案

佐手、 提交于 2020-10-29 05:11:49
公司是做CS产品的, 最近分配给我一个活, 要求: 1. 公司程序启动时, 检测是否有配置文件, 没有的话则按默认值创建一个 2. 配置文件要加密, 不能让客户随便看到里面的参数 3. 配置文件要有配套的GUI配置工具, 因为现场实施人员嫌XML配置麻烦 如果只有一个产品需要这个功能, 把每个配置项的读写功能硬编码写到工具里就完事了, 但公司有好几个产品都需要这个, 不得不写一个通用的工具类 这个工作还解决了两个问题: a. 以前设置项都配置在 app.config 里, 每次升级都会覆盖原来的设置, 所以现场人员都必须先将 app.config复制出来. b. app.config 里新增了配置项, 现场实施人员必须仔细对比, 将新增项人工放入原来的app.config 现在的做法是, 配置文件ConfigSetting.xml并不在安装包中, 所以卸载升级都不会影响它; 程序第一次启动时, 会按默认值生成一个ConfigSetting.xml; 以后程序启动的时候, 假如有新增的配置项, 则将其加入ConfigSetting.xml 我把涉及的两个类都放在了一个文件, 这样引入一个文件即可 using System; using System.Collections.Generic; using System.Xml.Linq; using System.Security

element-ui上传组件,通过自定义请求上传文件

可紊 提交于 2020-10-28 18:21:28
记录使用element-ui上传组件,通过自定义请求上传文件需要注意的地方。 <el-upload ref="uploadMutiple" :auto-upload="false" action="Fake Action" :on-success="allHandleSuccess" :on-change="handleChange" :file-list="fileList" :http-request="allUpload" :before-upload="before_upload" multiple >选取文件</el-upload> <el-button type="primary" size="small" @click="submitUpload">上传</el-button> 首先关闭自动上传,并给随便给action赋值一个字符串。(action是必填属性) :auto-upload="false" action="Fake Action" 通过 :on-change 钩子函数,拿到文件列表: handleChange(file, fileList) { this.fileList = fileList; }, 一般情况下,我们在submitUpload()的点击事件中去触发上传: submitUpload() { this.$refs.uploadMutiple

【17期】什么情况用ArrayList or LinkedList呢?

我与影子孤独终老i 提交于 2020-10-28 17:29:13
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 7 分钟。 来自:网络 ArrayList 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。ArrayList 和 LinkedList 都实现 List 接口。先对List做一个简单的了解: 列表(list)是元素的有序集合,也称为序列。它提供了基于元素位置的操作,有助于快速访问、添加和删除列表中特定索引位置的元素。List 接口实现了 Collection 和 Iterable 作为父接口。它允许存储重复值和空值,支持通过索引访问元素。 读完这篇文章要搞清楚的问题: ArrayList和LinkedList有什么不同之处?什么时候应该用ArrayList什么时候又该用LinkedList呢? 下面以增加和删除元素为例比较ArrayList和LinkedList的不同之处 增加元素到列表尾端: 在ArrayList中增加元素到队列尾端的代码如下: public boolean add (E e) { ensureCapacity(size+ 1 ); //确保内部数组有足够的空间 elementData[size++]=e; //将元素加入到数组的末尾,完成添加 return true ; } ArrayList中add()方法的性能决定于ensureCapacity()方法