Catch
分类:工作笔记 第4页

使用YUICompressor压缩JS、CSS优化前端加载速度

性能一直是项目中比较重要的一点,尤其门户网站,对页面的响应要求是很高的,从性能角度上来讲,对于Web端的优化其中重要的一点无疑是JS、CSS文件压缩,图片的融合,尽量减小文件的大小,必免占加载时占用过多的带宽。yuicompressor无疑是一个比较好的压缩工具,是yahoo的一个开源组件,下面介绍yuicompressor压缩JS、CSS文件,及在项目中的使用。 YUICompressor介绍 首先需要从https://github.com/yui/yuicompressor/releases下载yuicompressor的jar文件,目前最新版是2.4.8,把yuicompressor-2.4.8.jar下载下来,一会就用这个jar来压缩文件 yuicompressor需要有java运行环境的支持,先通过java -jar yuicompressor-2.4.8.jar看下效果 —type:文件类型(js|css) —charset:字符串编码 —line-break:在指定的列后面插入一个line-break符号 -v,—verbose: 显示info和warn级别的信息 -o:指定输出的文件位置及文件名 —nomunge:只压缩, 不对局部变量进行混淆 —preserve-semi:保留所有的分号 —disable-optimizations:禁止优化 下面是一个单个文件压缩的命令示例 java -jar /data/lib/yuicompressor-2.4.7.ja

1年前 359浏览

js实现jQuery的addClass、removeClass、toggleClass等方法

function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!this.hasClass(obj, cls)) { obj.className += " " + cls; } } function removeClass(obj, cls) { if (hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' '); } } function toggleClass(obj,cls){ if(hasClass(obj,cls)){ removeClass(obj, cls); } else { addClass(obj, cls); } }

1年前 221浏览

Elasticsearch 基础概念知识

Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)。 集群(cluster) 一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是 “elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。在产品环境中显式地设定这个名字是一个好 习惯,但是使用默认值来进行测试/开发也是不错的。 节点(node) 一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况 下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网 络中的哪些服务器对应于Elasticsearch集群中的哪些节点。 一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意 味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。 在一个集群里,只要你

1年前 375浏览

webpack在打包前清理dist目录

由于每次build项目都会直接增加新文件到dist目录,所以为了避免每次都要手动删除旧的文件,采用clean-webpack-plugin插件在打包前自动清理dist目录 插件安装 npm install clean-webpack-plugin --save-dev // 或者使用yarn yarn add clean-webpack-plugin -D 修改webpack 我创建的是vue项目,需要修改webpack.prod.conf.js文件 const CleanWebpackPlugin = require('clean-webpack-plugin') ... plugins: [ new CleanWebpackPlugin(['dist']), ... ]

1年前 307浏览

ElasticSearch: Index 和 Type 的区别

原文: Index vs. Type By Adrien Grand 译者: fengchang 对于 ES 的新用户来说,有一个常见的问题:要存储一批新的数据时,应该在已有 index 里新建一个 type,还是给它新建一个 index?要想回答这个问题,我们必须先理解这两者是怎么实现的。 过去,我们为了让 ES 更容易理解,经常用关系型数据库做一个比喻: index 就像关系型数据库里的 database, type 就像 database 里的 table。但是这并不正确。由于两种数据库存储数据的方式是如此不同,任何比喻都是没有意义的。这种比喻往往会导致对 type 的滥用。 Index 是什么 Index 存储在多个分片中,其中每一个分片都是一个独立的 Lucene Index。这就应该能提醒你,添加新 index 应该有个限度:每个 Lucene Index 都需要消耗一些磁盘,内存和文件描述符。因此,一个大的 index 比多个小 index 效率更高:Lucene Index 的固定开销被摊分到更多文档上了。 另一个重要因素是你准备怎么搜索你的数据。在搜索时,每个分片都需要搜索一次, 然后 ES 会合并来自所有分片的结果。例如,你要搜索 10 个 index,每个 index 有 5 个分片,那么协调这次搜索的节点就需要合并 5x10=50 个分片的结果。这也是一个你需要注意的地方:如果有太多分片的结果需要合并,或者你发起了一个结果巨大的搜索请求,合并任务会需要大量

1年前 195浏览

IntelliJ IDEA 远程调试 Tomcat

准备工作 明确远程服务器的 IP 地址,比如我是:192.168.92.128 关掉服务器防火墙:service iptables stop 本地 Remote Server 配置 添加 Remote Server,如下图 复制 Remote Server 自动生成的 JVM 参数,等下有用,如下图,比如我的是:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 在 Host 添加服务器的 IP 地址:192.168.92.128。 把刚刚复制参数加个前缀,变成: Linux(有单引号):export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005' Windows(没有单引号):set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 服务器 Tomcat 配置 以 Linux 环境为例 Tomcat 安装在 /usr/program/tomcat7 Tomcat 的执行程序:/usr/program/tomcat7/bin/catalina.sh 编辑 Tomcat 执行程序:vim /usr/program/tomcat7/bin/catalina.sh(Windows 是编辑:cat

1年前 354浏览

MySQL中MyISAM与InnoDB区别及选择

对比 特性 InnoDB MyISAM 事务 支持 不支持 外键 支持 不支持 行锁 支持 不支持 索引方式 聚集索引 非聚集索引 表行数 不保存 保存 全文索引 不支持 支持 详细比较 InnoDB 支持事务,MyISAM 不支持,对于 InnoDB 每一条 SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条 SQL 语言放在 begin 和 commit 之间,组成一个事务; InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败; InnoDB 是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。 InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而 MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快; Innodb 不支持全文索引,而 MyISAM 支持全文索引,查询效率上 MyISAM 要高; 选择 是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM; 如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使

1年前 200浏览

给CentOS安装字体

安装字体管理工具 yum install -y fontconfig mkfontscale 上传字体文件 把字体上传至/usr/share/fonts目录下,cd到该目录下,执行如下命令 mkfontscale mkfontdir fc-cache -fv 重启 使用reboot重启操作系统即可

1年前 245浏览