聚合文章列表
7 浏览

深入理解 webpack 文件打包机制

写文章登录深入理解webpack文件打包机制林东洲3hoursago原文地址前言最近在重拾webpack一些知识点,希望对前端模块化有更多的理解,以前对webpack打包机制有所好奇,没有理解深入,浅尝则止,最近通过对webpack打包后的文件进行查阅,对其如何打包JS文件有了更深的理解,希望通过这篇文章,能够帮助读者你理解:webpack单文件如何进行打包?webpack多文件如何进行代码切割?webpack1和webpack2在文件打包上有什么区别?webpack2如何做到treeshaking?webpack3如何做到scopehoisting?本文所有示例代码全部放在我的Github上,看兴趣的可以看看:gitclonehttps://github.com/happylindz/blog.gitcdblog/code/webpackBundleAnalysisnpminstallwebpack单文件如何打包?首先现在webpack作为当前主流的前端模块化工具,在

JavaScript 2018-01-07 发布
13 浏览

vue实现登录后跳转到之前的页面

在开发中我们经常遇到这样的需求,需要用户直接点击一个链接进入到一个页面,用户点击后链接后会触发401拦截返回登录界面,登录后又跳转到链接的页面而不是首页,这种问题该如何去做呢?先说一下我们需要用到的几个API:1.router.currentRoute:当前的路由信息对象,我们可以通过router.currentRoute.fullPath获得解析后的URL,包含查询参数和hash的完整路径,如果要访问的页面的路由有命名(name)的话,可以通过router.currentRoute.name获得当前路由的名称。2.router.replace:作用和router.push相同,不过它不会向history添加新纪录,而是替换当前的history记录。由于大家的代码写的都不一样,我就不放我具体的实现代码,简单介绍一下思路:1.用户点开链接后,跳转到的目标的路由页面,然后触发401拦截器,返回登录页面://401拦截if(status=="401"){router.push("/login")}2.我们可以在4

JavaScript 2018-01-07 发布
15 浏览

大前端工程师2017热门文章

{"debug":false,"apiRoot":"","paySDK":"https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs","wechatConfigAPI":"\u002Fapi\u002Fwechat\u002Fjssdkconfig","name":"production","instance":"column","tokens":{"X-XSRF-TOKEN":"2|8b765bf7|31977247ee04fc5b66acac0d02a56e1d|1513694833","X-UDID":null,"Authorization":"oauthc3cef7c66a1843f8b3a9e6a1e3160e20"}}

JavaScript 2018-01-07 发布
AD 友情赞助
12 浏览

15个超强悍的CSS3圆盘时钟动画赏析

在网页上,特别是个人博客中经常会用到时钟插件,一款个性化的时钟插件不仅可以让页面显得美观,而且可以让访客看到当前的日期和时间。今天我们给大家收集了15个超强悍的圆盘时钟动画,很多都是基于CSS3,也有一部分利用jQuery和SVG,让我们一起来看看吧。1、纯CSS3/SVG实现的带秒针表盘圆盘复古时钟现在的网页上圆盘时钟越来越少见了,更多的是数字时钟和数字日历。之前我们分享过一些基于jQuery和CSS3的圆盘时钟动画,比如纯CSS33D立体圆盘时钟动画和jQuery实现一个挂在墙上的圆盘时钟动画都非常不错。这次要给大家带来一款比较复古的圆盘时钟,基于纯CSS3,盘面是SVG绘制而成,并没有使用任何图片。时钟整体外观比较怀旧,给人不一样的视觉感受。在线演示源码下载2、HTML5Canvas3种不同风格的圆盘时钟这次我们要继续为大家分享一款基于HTML5Canvas的圆盘时钟动画,和之前分享的这款HTML5Canvas圆形时钟动画类似,它也是基于HTML5的,但是这款时钟提供了3种不同的样式风格,而且时钟的大小

CSS 2018-01-07 发布
21 浏览

重复造轮子之高仿EntityFramework

前言在上一篇《【原创】打造基于Dapper的数据访问层》中,Dapper在应付多表自由关联、分组查询、匿名查询等应用场景时经常要手动写SQL语句。看着代码里满屏的红色SQL字符串,简直头大,于是便萌生重复造ORM这个轮子的念头。本ORM在API设计上最大程度地借鉴EF的写法,支持链式查询(点标记)、查询表达式、聚合查询、分组排序、批量插入、批量更新、批量删除、1:1关系外键等。在实体绑定层面,使用Emit来动态构建绑定指令,性能最大限度地接近原生水平。性能7000笔记录循环读1000次,同时加载1:1关系的外键,速度比EF稍快。语法1.单表查询//查询表达式varquery=fromaincontext.GetTable()selecta;varr1=query.ToList();//点标记query=context.GetTable();r1=query.ToList();//SQL=>//SELECT//t0.[Demo

.Net 2018-01-07 发布
15 浏览

HY.Mail:C#简单、易用的邮件工具库

一、开发HY.Mail的初衷Nuget或者github上有很多成熟且优秀的邮件库可以使用,但是目前找到的使用都不够简洁或者不适合我的使用场景我的场景是开发应用场景(例如系统通知、运维通知),而非业务场景(给客户发送邮件,HY.Mail也适用于此场景)。需要能够灵活简洁的调用,需要预设一些邮件信息。例如系统运维:需要做系统日志的邮件通知,一般收件人、接收人、抄送人都是预选设置好的。那么我们就需要预先设置N种MailSender,然后根据需求直接调用对应的MailSender发送邮件正文即可,而不必调用前设置发件人密码收件人。二、HY.Mail使用HY.Mail是进一步封装了System.Net.Mail,轻量,简洁,线程安全,进行了多线程处理的优化。定义自己的Sender(类库已经预设了QQMailSender):publicclassMyMailSender:MailSender{privateconststringHOST="smtp.XX.com";privateconstintPORT=

.Net 2018-01-07 发布
AD 友情赞助
16 浏览

体验 ASP.NET Core 集成测试三剑客:xUnit.net、TestServer、EF Core InMemory

这是昨天解决的一个问题,针对一个webapi的客户端代理类写集成测试,既要测试webapi,又要测试webapi客户端。测试webapi,就要在运行测试时自动启动webapi站点,asp.netcore中的TestServer就是为此而生,而且与asp.netcore结合的天衣无缝,不仅自己可以通过IWebHostBuilder配置站点,而且可以直接使用webapi站点的Startup类。对于测试时的数据模拟,可以通过EFCore提供的InMemorydatabase,使用起来超级简单,只需在依赖注入DbContext时使用options.UseInMemoryDatabase()。而对于TestServer的统一管理(配置、启动、销毁),对所测试的类的依赖注入,可以借助xUnit.net的fixtureclass,详见SharedContextbetweenTests。xUnit.netfixtureclass的示例代

.Net 2018-01-07 发布
9 浏览

2017年度最推荐

2017不知不觉已经走过,博客已经许久没有更新了,一个原因是越来越觉得自己的学识浅薄,怕写了技术误了大家,另一个原因是自己太懒了。鉴于上面两个原因,我决定此博客的更新,不再非要更新技术文章,一些我觉得有意义的事情、思考等,也会更新上来。一方面自己做个记录,如果能顺带给读者带来一点帮助,那自然是最好的(虽然没几个读者…)2017既然才刚刚过去,我觉得有必要把2017年里面我觉得体验很棒或者对工作生活很有帮助的东西推荐给大家,或许2018你会需要他们。推荐的内容包含了App、硬件、书籍、器材等,需要说明的是,这些东西是我觉得2017年给我带来很大帮助的,适合我不一定适合你。话不多说,直接上内容吧!2017年度最推荐iOSApp关键词:减肥学习见识Keep如果你是一个健身爱好者、计划减肥者,想找一款能记录运动的App,那么我推荐Keep给你。Keep那句很出名的slogan不知道大家有没有听说过:自律给我自由!,我同样喜欢另外一句:不要让工作毁掉你的生活,总有比你更忙的人在运动。软件只

程序员 2018-01-07 发布
21 浏览

Swagger UI 3.9.0 发布,API 在线文档生成利器

IntroducedabreakingfunctionsignaturechangetoerrActions.newThrownErractioncreator(from(err,action)to(err))anderr_new_thrown_erractionpayload(stoppednestingerrorcontentundererrorkeyinpayload,nowtheerroristhepayload).特性:addederrorcatcherforstatePlugininterfaces;preventserrorsinplugincodefromcrashingentireapplicationinstance(via#4067)Theonlydownsidetothisisthat

软件架构 2018-01-07 发布
AD 友情赞助
19 浏览

CentOS7源码安装lamp

环境介绍虚拟机:VMwareWorkstation14Pro镜像:CentOSLinuxrelease7.4.1708(Core)物理机:windows764位防火墙设置centos7.2系统默认开启了防火墙,需关闭外部才能访问到80端口systemctlstatusfirewalld.service#查看防火墙服务状态systemctlstopfirewalld.service#关闭防火墙systemctldisablefirewalld.service#关闭防火墙开机自启动安装EPEL软件源yuminstallepel-release编译安装apache安装apache所需的软件包及相关依赖yuminstall-ygccgcc-c++autoconflibtool安装aprcd/usr/local/srcwgethttp://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gztar

MySQL 2018-01-07 发布
16 浏览

MySQL binlog日志存放位置的修改

最近项目上装的MySQL服务,分配的磁盘空间太小了,导致binlog日志两天时间就能打满,这里记录下处理方式。mysql的binlog日志是一个很重要的日志,以事件形式记录了所有的DDL和DML(除了数据查询语句)语句,还包含执行的消耗的时间,在数据丢失的紧急情况下,我们可以利用binlog日志功能进行数据恢复。1、问题上面说了,默认情况下binlog日志默认在/var/spool/mail/root路径下,磁盘空间比较小很快就被binlog打满了,为了保证项目上能正常使用,之前是维护人员手动清理和备份。在找到重新挂盘和修改binlog日志路径方法前,先给现场的配置下自动清理。2、配置自动清理在my.cnf文件中,这个文件路径不知道的话执行mysql--help|grep'Defaultoptions'-A1,就会列出文件的路径来修改配置文件,vi/etc/my.cnf,找到logbin的部分路径因为测试环境没法挂盘,随便写了个路径,下面新建我们上面指定的文件夹mkdir-p/home/logs,然

MySQL 2018-01-07 发布
6 浏览

npm 发布 2017 JavaScript 框架报告:React 占主导地位

npm的联合创始人兼首席运营官LaurieVoss近日发布了2018年的第一个JavaScript现状报告,这一系列报告包含三部分,将会提供JavaScript发展趋势和实践的完整回顾。第一部分讲述了2017前端框架的现状,第二部分将讲述React的生态系统,第三部分将对后端框架进行讲述。目前,第二和第三部分尚未发布。LaurieVoss说,JavaScript社区在编程语言史上以前所未有的速度增长着,npm中的包也随之增长。npm作为开发者分发和发现JavaScript代码的中心枢纽,我们可以看到应用程序开发者编写代码以及他们使用工具的趋势。一起看看2017JavaScript前端框架的回顾吧。主要的前端框架报告显示,相对于所有npm中的包下载量,React的使用量增长了500%。移动、桌面应用程序和Web开发都在使用React。对React而言,作为它的性能改进直接替代品,Preact也有145%的增长。Preact作为独立开发的React

JavaScript 2018-01-07 发布
AD 友情赞助
10 浏览

微信手 Q Node.js 直出框架 Hawaii 剖析

这篇文章主要讲述了Hawaii框架设计的背景、特有的RDS文件(RequestDescriptionSpecification)、框架主要特性、与流行框架的对比等。一.Hawaii框架设计的背景粗略的讲,web页面的渲染方式可以分为两种:客户端渲染(ClientSideRender,CSR,也叫做异步渲染)和服务端渲染(ServerSideRender,SSR,也叫做直出)。客户端渲染模式自从ajax技术流行及前后端分离思想提出后,是一种非常流行的模式,确实提升了整体的开发协作效率。但是这种模式也有其弊端,由于客户端需要多次和服务端进行交互,性能和体验比较差。下面两张图是两种渲染模式的对比:从上面两张图可以看出,在客户端渲染模式中,不考虑css、图片等因素,客户端至少需要和服务端交互3次才能看到内容。而直出模式中,客户端只需要和服务端交互一次就可以了。网络往返耗时是影响页面性能的主要因素,雅虎13条中最主要的一条就是减少http请求数,微信手Q侧性能统计显示,直出能提升一倍左右的性能,直出也是这几年一个非常热的话题。

JavaScript 2018-01-07 发布
13 浏览

使用jqprint插件实现打印页面内容

实现效果图引入js文件注意这里是先引入的jQuery文件,如果没有引入第一个js文件的话,会出现兼容性问题,导致使用jqprint打印时报错。html页面这里面的html标签很多的用户信息姓名:

JavaScript 2017-03-12 发布
17 浏览

Office 365也是.NET Core应用开发新战场

Office365也是.NETCore应用开发新战场最近有幸阅读了陈希章花了一年时间为国内开发者贡献的《Office365开发入门指南》。虽然早期接触过SharePoint的开发,2007年之后就再也没有接触SharePoint的开发,这次阅读这本书让我重新认识了Office的系统开发技术,让我意识到现在的Office开发也是.NETCore开发技术的新战场,而且更为有心的是陈希章的范例都是使用.NETCore写的,具体地址https://github.com/chenxizhang/office365dev。在新CEO纳德拉的带领下,秉持“云为先”和“一个微软”的方针,微软比任何时候都更加开放和谦虚,内部协作也更紧密。Office365发展到现在,在经过各种用户看得见和看不见的变迁和进化后,已经成为一套比较成熟的云服务,而各种进步和创新还在继续。Office365是一个很好的开发平台,有数以亿计的用户,据不完全统计,地球上1/7的人们在使用Office,MicrosoftGraph可以让你的业务系统很容易地和Of

.Net 2018-01-07 发布
14 浏览

关于程序员生涯的思考,30 岁以后的码农们该何去何从?

程序员岁月是一把杀猪刀,码农们随着年纪越来越大,头发越来越少,精力已远远不如从前,这些码农该何去何从呢?我18岁入行,呆过国企,也呆过创业公司,虽然现在我还很年轻,精力也很充沛,但是我时常会想,我到30岁以后,会是怎样的场景?是一个Coder?还是一个项目Leader?或者是一个架构师、CTO呢?做了这么长时间的开发,越来越了解「软件工程师」这个职业,也就是职业程序员,《黑客与画家》的作者保罗.格雷厄姆,曾做过一个概括:程序员只是一个负责实现领导意志的技术工人,职责就是根据规格说明书写出代码,其实与一个挖水沟的工人是一样的,从这头挖到那头,仅此而已,从事的都是机械性的工作。在软件开发流程里面,程序员只是充当一种工具,用来实现产品经理的软件标准,最终输出可交付的代码。许多年轻的程序员勤奋工作,从早到晚一刻不停地编码,周末也来加班,努力完成公司的一个个目标,很少会去想为什么要开发这个软件?这个软件有多大的价值?更很少去想"我的人生规划是什么"?中国的现实也很残酷,商业公司存在的意义就是要盈利,告诉你做什么,你就做

程序员 1900-01-01 发布
24 浏览

一个硬件安全工程师眼中的Meltdown

本文作者是安天微电子与嵌入式安全实验室的Tbsoft博士。1、现代计算机体系结构(Architecture,也译作架构或者系统结构)和CPU微体系结构(Microarchitecture,也译作微架构或者微结构)现代计算机的体系结构基本都是基于冯·诺依曼体系结构,也就是“存储程序方式”,即程序指令代码(指令)和数据都放在内存中,运行时CPU从内存中逐条取指令并执行,指令还可以在必要时访问内存数据。哈佛结构是冯·诺依曼结构的一种变形,特点是将程序(指令)存储器和数据存储器分开,即有两块独立的内存,一块存放指令,一块存放数据,但没有脱离“存储程序方式”这种基本的方式,因此仍然属于冯·诺依曼结构的变形或者改进。对于程序员,即使是汇编语言甚至机器语言程序员,最多也只能涉及到内存指令和数据这一级,计算机暴露给程序员的,只能是冯·诺依曼结构或者哈佛结构,称为计算机体系结构(Architecture)。但CPU本身是由运算器、控制器、寄存器等部件组成的硬件电路,内存指令被取入CPU后,在CPU内部还要经过复杂的指令译码等过程,才能驱动CPU

程序员 2018-01-07 发布
27 浏览

MySQL 语法规则以及字符集

SQL关键字和函数名:不区分数据库、数据表和视图的名字:Windows和MacOSX平台不区分、Unix平台区分。存储程序的名字:不区分。但是触发器的名字要区分字母大小写。列名和索引名:不区分。别名的名字:默认情况下,不区分。字符串值:取决于是否为二进制,而非二进制字符串还要取决于字符集的排序方式(校验规则)。不管系统是否区分大小写,都使用一致的大小写组合来使用。字符集支持MySQL的字符集支持机制提供了以下一些功能:MySQL服务器允许同时使用多种字符集。一种给定的字符集可以有一种或多种排序方式(校验规则)。支持Unicode的字符集有:utf8和ucs2字符集、utf116、utf32和utf8mb4字符集,以及utf16le。你可以在服务器、数据库、数据表、数据列和字符串常数等级别设定字符集;既有用来转换数据值的字符集的函数和操作符,也有用来判断数据值的字符集的函数和操作符。SHOW语句和INFORMATION_SCHEMA数据表提供了关于可用字符集合排序方式(校验规则)的信息。当你改变某个

MySQL 1900-01-01 发布
13 浏览

《Node.js设计模式》高级异步准则

本系列文章为《Node.jsDesignPatternsSecondEdition》的原文翻译和读书笔记,在GitHub连载更新,同步翻译版链接。欢迎关注我的专栏,之后的博文将在专栏同步:Encounter的掘金专栏知乎专栏Encounter的编程思考segmentfault专栏前端小站AdvancedAsynchronousRecipes几乎所有我们迄今为止看到的设计模式都可以被认为是通用的,并且适用于应用程序的许多不同的领域。但是,有一套更具体的模式,专注于解决明确的问题。我们可以调用这些模式。就像现实生活中的烹饪一样,我们有一套明确的步骤来实现预期的结果。当然,这并不意味着我们不能用一些创意来定制设计模式,以配合我们的客人的口味,对于书写Node.js程序来说是必要的。在本章中,我们将提供一些常见的解决方案来解决我们在日常Node.js开发中遇到的一些具体问题。这些模式包括以下内容:异步引入模块并初始化在高并发的应用程序中使用批处理和缓存异步操作的性能优化运行与Node.js处理并发请求的能力

JavaScript 2018-01-06 发布
27 浏览

PM2源码阅读

因为我只关注PM2的核心功能,相对于辅助的功能,我就不多花时间去看了,只要实现了核心功能,辅助功能不看源码,相信我也能实现的。阅读本文的时候,我默认您已经了解了Node的基本知识和Cluster的用法,对于Cluster不熟悉的,可以查看这篇文章我选择直接查看PM2前期的代码,前期代码没有多余的技巧和辅助代码干扰,对于库设计者的思路体现的比较好,这个技巧在大家看别的源码的时候也可以使用。我选定的是0.4.10版本。首先,我们找到程序的入口,也就是在bin目录下的pm2可执行文件。我们的目标很明确,了解pm2startapp.js这样的命令的运作方式,那么,就直奔重点,找到start命令的代码(逻辑执行部分):commander.command('start