聚合文章列表
14 浏览

移动前端图片压缩上传

移动前端图片压缩上传摘要:之前在做一个小游戏平台项目,有个“用户中心”模块,就涉及到了头像上传的功能。在做移动端图片上传的时候,传的都是手机本地图片,而本地图片一般都相对比较大,拿现在的智能手机来说,平时拍很多图片都是两三兆的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法。所以上传之前进行压缩处理是必要的,在网上找了很多资料之后,尝试了很多方法,遇到了很多坑,比如安卓能够成功压缩上传图片,在ios上却上传不了,折腾了很久才发现ios的坑。一下这种已经进过实践证明是可行的,几兆的图片最后都能压缩到我们后端要求的200k以内!这么可行的方法必须给大家看看【ps:都是些东拼西凑别人的方法出来的,嘻嘻~】。目前来说,HTML5的各种新API都在移动端的webkit上得到了较好的实现。根据查看caniuse,本demo里使用到的FileReader、Blob、Formdata对象均已在大部分移动设备浏览器中得到了实现(safari6.0+、android3.0+),所以直接在前端压缩图片,已经成了很

HTML5 2017-12-05 发布
12 浏览

【ASP.NET Core】运行原理之启动WebHost

问题概要Hosting中有哪2个ServiceProvider,各自如何创建,以及有哪些ServiceCollection。什么时候执行Startup的ConfigureServices和Configure方法什么时候注册和使用的Server手工模拟一个DefaultWebHost环境WebHost.CreateDefaultBuilder(args)该方法为WebHost类的静态方法,内部创建1个WebHostBuilder。参数args将作为配置项添加了Kestrel、Configuration、Logging、IISIntegration中间件,同时配置ContentRoot和DefaultServiceProviderpublicstaticIWebHostBuilderCreateDefaultBuilder(string[]args){varbuilder=newWebHostBuilder().UseKestrel().UseContentRoot(Directory.GetCurrentDirectory(

.Net 2017-12-05 发布
12 浏览

亲力亲为 vue 生命周期

网上关于vue生命周期的文章一抓一大把,看了很多,收获是有的,但纸上得来终觉浅.最终还是决定自己上手,加深一下印象测试版本vue2.5.2程序设计如下functionlog(){try{console.log('%c%s','color:blue',`===============data:foo--->${this.foo}=====================`)}catch(e){}try{console.log('%c%s','color:blue',`===============props:bar--->${this.bar}=====================`)}catch(e){}try{console.log('%c%s','color:blue',`===============computed:baz--->${this

vue.js 2017-12-05 发布
AD 友情赞助
9 浏览

重置vue打印变量显示方式

在vue使用console.log()打印变量会有多余我们不期望看到的属性而且展开方式不友好所以我们来重置一个打印方式:在main.js文件中添加一下代码Vue.prototype.print=(obj,type)=>{type=type||"log";constlog=JSON.parse(JSON.stringify(obj));console[type](log)}以后我们打印变量就可以直接使用this.print(obj)//或者this.print(obj,"error")这样打印出来的信息就是以我们熟悉的方式打印了

vue.js 2017-12-05 发布
10 浏览

小白成长日记:写个贪吃蛇

还是用的vue,本来以为不合适,但想法错了。贪吃蛇并不是通过操作dom来完成移动的,而是通过记录贪吃蛇的路径来将身体渲染出来。一般移动元素,我们都是变动它的css达到目的,但我在写贪吃蛇的时候发现这样很难以实现,参考了网上的资源,发现大部分人是通过记录贪吃蛇的路径,保存进数组,通过数组变动来表示贪吃蛇的下一步,主要是增加头部位置,去除尾部位置,再动态添加css样式,这样就达到移动的效果。演示链接描述html&&data:<divid="snake"><table><trv-for="(col,y)incols"><tdv-for="(row,x)inrows":class="body(x,y)||showfood(x,y)?'active':''"></td></tr></table><button@click="start()">开始&

vue.js 2017-12-05 发布
9 浏览

webpack2.x+vue2.x+vue-router+vuex搭建简单的单页面应用(一)

前言这篇文章主要想跟大家介绍下单页面应用是怎么搭建的,本文采用webpack脚手架纯手工配置vue+vue-router+vuex搭建简单的单页面应用。1.什么叫单页面(SPA)?单页面是指只有一个主页面的应用,浏览器一开始要加载所有必须的html,js,css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,根据路由改变页面片段实现页面的变更。2.和多页面(MPA)的区别?多页面应用每个页面是单独的html,通过浏览器地址变化从a页面跳转到b页面,b页面所有页面资源和公共资源都需要重新加载。而单页面是只有一个主html,通过路由改变变化主页面当中不同的页面片段,但是不刷新页面,公共资源不需要重新加载,只需改变加载需要改变的页面片段。相比于多页面页面切换更加高效,性能更好,缺点首页首次加载数据增多,seo优化不好处理(痛点)。3.如何搭建一个简单的单页面?我们这边还是拿vue来做例子,按照以往先贴出项目根目录。.├──dist├──node_mod

vue.js 2017-12-05 发布
AD 友情赞助
12 浏览

vue SSR 服务端渲染记录

前几天了解了下vue服务端渲染的流程,记录下。首先,什么是ssr(服务端渲染ServerSideRendering),为什么需要?服务端渲染是什么前后端分离之后,页面加载的流程是,前端异步请求拿到数据渲染页面。服务端渲染就是在后端把数据取好,拼好页面的DOM树发给前端,到浏览器解析渲染。有没有想到前后端分离之前,由后端把数据塞进模版,前端负责显示的过去。(有没有种天下之势,合久必分,分久必合的感慨哈哈哈哈哈)服务端渲染优点页面的SEO,异步拿数据显示对爬虫不友好首屏渲染速度快,更好的用户体验服务端渲染原理接下来,介绍下vue服务端实现原理及流程。SSR有两个入口文件client-entry,server-entry,webpack打包之后,生成server-bundle,client-bundle服务器收到浏览器的请求,创建一个bundleRenderer,读取1生成的server-bundle,执行代码(具体做了什么后面会讲到),生成html发送到前端把第二步生成的html跟前端的client-b

vue.js 2017-12-05 发布
11 浏览

vue cli 关于使用绝对路径引用图片的问题

在页面中使用绝对路径可通过在js中用require()引入data(){return{src:require('IMAGES/banner.jpg')}}<img:src="src">样式里面似乎无法使用绝对路径,除非把图片资源都放到static里面,然后就可以这样引用background:url("/static/images/banner.jpg")no-repeat;但,放到static里面webpack打包后只会把资源复制到发布目录而不会把小图片优化为base64。为了兼顾可以把图片资源优化,所以还是不适合把图片资源放到static,但,在vue页面style标签里面写样式随着目录的深入有可能引用路径是:background:url("../../../images/banner.jpg")no-repeat;有个做法似乎可以省去一些麻烦:把样式文件统一放到style文件夹里面,样式图片资源用相对路径,然后在style标签用src属性引入样式,这样就可

vue.js 2017-12-05 发布
11 浏览

浅析MVC、MVP、MVVM 三种开发模式以及Vue双向数据绑定原理

MVCM:modelV:viewC:controllerMVC是不改变试图的情况下改变试图对用户输入的相应方式,Model层用于封装和应用程序的业务逻辑相关的数据以及对数据的处理方法View作为视图层,主要负责数据的展示Controller让它来定义用户界面对用户输入的响应方式,它连接模型和视图,用于控制应用程序的流程,处理用户的行为和数据上的改变用户对V的操作交给了C处理,在C中相应V的事件调用M的接口对数据进行操作一旦M发生变化便通知相关试图进行更新![图片描述][1]MVPM=>Model管理数据V=>View负责显示P=>Presenter负责业务逻辑MVP中的V不直接使用M,而是通过为P提供接口,让P去更新Mo,再通过观察者模式更新V。与MVC相比,MVP模式通过解耦View和Model,完全分离视图和模型使职责划分更加清晰;由于View不依赖Model,可以将View抽离出来做成组件,它只需要提供一系列接口提供给上层操作![图片描述][2]

vue.js 2017-12-05 发布
AD 友情赞助
8 浏览

Vue2.0一——入门简介、MVVM、安装、组件、模块化

Vue简介Vue的作者是世界华人的骄傲——尤雨溪,初衷是感到angular的api设计很繁琐学习曲线很陡峭于是就自己开始造轮子逐渐的14年的时候开源了vue前端开发库通过简洁的api提供高效的数据绑定和灵活的组件系统MVVM数据绑定本质是通过数据绑定链接的view和model让数据的变化自动映射为试图的更新在数据绑定的api设计上借鉴了angular的指令机制<!--指令--><spanv-text="msg"></span><!--插值--><span>{{msg}}</span><!--双向绑定--><inputv-model="msg">与Angular不同的是,Vue.js的API里并没有繁杂的module、controller、scope、factory、service等概念,一切都是以“ViewModel实例”为基本单位<!--模板--><divid="a

vue.js 2017-12-05 发布
9 浏览

RabbitMQ进程结构分析与性能调优

作者介绍:李帅,腾讯高级工程师,从事过腾讯PaaS平台、云机房等项目,RabbitMQ贡献者,现负责腾讯云消息队列CMQ后台的设计开发。喜欢研究开源代码,对分布式系统非常感兴趣。RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能、健壮、可伸缩性出名的Erlang语言开发,并继承了这些优点。业界有较多项目使用RabbitMQ,包括OpenStack、Spring、Logstash等。腾讯云在开发云消息队列系统(CMQ)时,对RabbitMQ进行了大量的学习和优化,包括瓶颈分析、内存管理、参数调优等。下文结合Erlang和RabbitMQ架构来分析实践中遇到的问题,并探讨相应的优化方案。一.RabbitMQ架构分析图1AMQP模型AMQP是一个异步消息传递所使用的应用层协议规范,AMQP客户端能够无视消息来源任意发送和接受消息,Broker提供消息的路由、队列等功能。Broker主要由Exchange和Queue组成:Exchange负责接收消息、转发消息到绑定的

消息系统 2017-12-05 发布
12 浏览

拒掉8个互联网offer,心好痛

工作定下来了,为了一纸户口,选择了一家国企,拒掉了8个互联网offer(百度、IBM、京东、网易、滴滴、小米、爱奇艺、华为),心里说不出的难受。放弃了自己辛苦好久找的互联网工作,放弃了能实现自己所学的算法岗,放弃了和年轻人一起奋斗的工作,放弃了充满希望的AI,说不出的无奈与辛酸。回想找工作的过程还是充满了神奇与机遇。找工作应该是我们学生生涯最重要的一场战役,也是最后的一次奋斗,所以我早早就吹响了前进的号角。今年3月份的时候,就开始找实习,当时自己牛气哄哄,什么地方难进就投哪里,结果头破血流,颗粒无收。怀疑自己,质疑能力,是那段灰色时间常有的事情。但形势所迫,只能鼓起勇气继续奋进。那段时间也让我体会到了,社会是残酷的,个体是弱小的。作为一枚女程序员,而且是一个找算法岗的女程序员,在求职过程中,面临着各种啼笑皆非的事情。简历投过去,公司立马发邮件告知,此职位只招男生,这还能说啥。。。面试时,面试官问,你一个女孩子为啥不做轻松的测开,要做算法呢,我喜欢算法,我想做人工智能,难道不可以吗?当然也会有比较好玩的事情,如某面

程序员 2017-12-19 发布
AD 友情赞助
15 浏览

我为什么完全不认同程序员是出轨率最高的群体

作者:夜_阑珊01因为一直在专注于自己的事情,对简书上的各种热点和动态我始终是慢好几拍的。关注作者饱醉豚也是纯属偶然,原因是几个我关注的简友,在骂饱醉豚的《为什么程序员是出轨率最高的群体》文章,我恰好看到了。于是好奇心之下,我点开了这篇让他们气愤的文章。气愤总是有原因的,原因就是那几个简友都是程序员。但是,我看完之后,并没有气愤,而是一身冷汗。我冷汗的是,整篇文章看下来毫无违和感,论点论据丝丝入扣,直指他最后得出的结论。“分析的真他娘的有道理啊”。在我大脑还没来得及思考的时候,不得不在心里感叹这么一句。但是,如果我不是一步一脚印走入程序员这个职业的以及近期一直在研究独立思考的内容,我差点就信了。02仔细分析了文章作者得出的结论,我主要罗列成了三点:1、大多数程序员的工作是非常悠闲的,比程序员更悠闲的工作,真的不是很多。2、程序员是世界上最不需要担心的职业,程序员压力大、工作压力大,是一个谣言。3、程序员容易约炮,程序员是出轨率最高的群体。以上作者的结论,我全部否定。为什么?因为饱醉豚论证过程有非常严重

程序员 2017-12-05 发布
22 浏览

程序员的自我救赎---2.1:报表系统项目分析

《前言》《目录》(一)Winner2.0框架基础分析(二)PLSQL报表系统(三)SSO单点登录(四)短信中心(五)钱包系统(六)GPU支付中心(七)权限系统(八)监控系统(九)会员中心(十)消息中心(十一)Winner前端框架与RPC接口规范讲解(十二)上层应用案例(十三)番外篇《报表系统项目分析》“报表系统”顾名思义是用来做报表用的,但是在Winner当中报表系统经常被我们用来当作网页版的PL/SQL来使用。不用Oralce的可能不知道PL/SQL,其实就是SQL客户端。往往我们有的项目来不及写后台,或者各个部门需求的后台列表不一致有“查询”需求的时候"PLSQL报表系统"就能帮助我们解决这类问题。常规意义上报表系统需要具备以下三点功能:1,提供数据查询生成报表(高级的需要生成图表)2,提供报表下载(高级的可以直接转发邮件)3,方便技术免除繁杂的后台开发(特别是仅有查询的后台列表)这三点中我最喜欢的也就是第三点,我们来看看Winner

程序员 2017-12-05 发布
18 浏览

正则表达式——Java程序员懂你

正则表达式关键字:正则表达式,Pattern,Matcher,字符串方法,split,replace前文书立下了一个flag,这里要把它完成,就是正则表达式,它是一个工具,是很早就存在于标准Unix工具集之中的,例如sed和awk。然而不经常使用Unix系统的程序员们依然能够在JavaScript,java,python,perl等等地方看到它,每当我们看到手指纷飞的他人写着精妙的一小撮正则就干了我们好几篇的校验代码的时候,心里默默升起一股羡慕之情,同时只能赶紧把这一小撮正则保存下来,下次好修修补补继续用,那么,我们能否读懂正则表达式呢,不再把它们作为天书看待。Java程序员普遍对与正则表达式并不算深入,因为我们有String以及StringBuilder,我们引以为傲的强大的java的字符串的处理在正则表达式的面前只能是小垃。正则表达式是一种强大灵活的文本处理工具,通过它能够解决各种字符串处理相关的问题:匹配、选择、编辑以及验证,Java程序员们,扔掉split(),replace()以及subString()吧,每次通过他们的组合

程序员 2017-12-05 发布
10 浏览

当技术成为一种情怀

入行20多年来,有了一次不同寻常的尝试,虽然只是合力出了一本书。时间回溯到2016年,最初出于挖人的险恶用心,进入了一个名叫“中生代技术”的技术群。本以为和自己加入的诸多技术群类似,没想到在这里发现了一群有趣的人,一群热爱技术的人,一群为了一些技术细节争论得面红耳赤的人。因为公众号wireless_com的一篇文字《老曹眼中的缓存技术》,在博客上是《全栈必备缓存基础》,右军找到了我,开启了本次著书之旅。感谢互联网,十个人的跨地域沟通,十个人各自创作,整合,交叉review,使这次众创成为可能。每个人都是parttime,都在消费自己的闲暇时间,都很辛苦的付出。几个伙伴都更换了工作,幸运的是,大家都坚持了下来。神奇的是,我们在众创著书之前大都素未谋面,自己也是在在后来的SDCC活动中面基了小程和开涛。其他的伙伴,只能等书籍现售的时候,看看有没有机会不再神交的可能。这些伙伴有着各自的特点,但都充满着对技术的热情包括我自己,他们是:于君泽:蚂蚁金服高级技术专家、花名右军,IT从业超过十五年。对高并发、分布式架构、内

软件架构 2017-12-05 发布
20 浏览

MySQL数据库基础——本地文件交互

首发于R语言数据分析与可视化写文章登录MySQL数据库基础——本地文件交互杜雨7hoursago从这一篇开始,大概会花四五篇的内容篇幅,归纳整理一下之前学过的SQL数据库,一来可以为接下来数据分析工作提前巩固基础,二来把以前学的SQL内容系统化、结构化。今天这一篇仅涉及MySQL与本地文本文件的导入导出操作,暂不涉及主要查询语言以及MySQL与R语言和Python的交互。平台使用NavicatPremium(当然你也可以使用MySQL自带的workbench或者MySQLConmandline)。以下仅涉及MySQL中使用命令行语句导入/导出本地磁盘的文本文件(csv\txt文件)。文件导入(csv):在导入本地文件之前,请确保你的MySQL设置有本地文件导入导出权限。在导入MySQL之前,需要在指定数据库中先建立空表,以备之后导入。USEdb1;CREATETABLEsubway(IDINTEGER(5)NOTNULLAUTO_INCREMENT,--ID是主键,格式为整

MySQL 2017-12-05 发布
10 浏览

MySQL 问题解决

问题如下:FailedtoConnecttoMySQLat127.0.0.1:3306withuserrootAccessdeniedforuser'root'@'localhost'我的问题是terminal中可以使用管理员账号登录mysql,但是在使用workbench时,链接就会出现上面的问题

MySQL 2014-03-03 发布
22 浏览

MySQL 慢日志线上问题分析及功能优化

MySQL慢日志线上问题分析及功能优化今天15:05作者:温正湖MySQL慢日志(slowlog)是MySQLDBA及其他开发、运维人员需经常关注的一类信息。使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据。本文将结合一个线上案例,分析如何正确设置MySQL慢日志参数和使用慢日志功能,并介绍下网易云RDS对MySQL慢日志功能的增强。MySQL参数组功能网易云RDS实例提供了参数组管理功能,可通过参数管理界面查看绝大部分常用的MySQL系统参数,用户可了解当前运行值和建议值:用户还可通过参数管理页面对所列的参数进行修改,点击“修改参数”按钮进行在线设置,点击“保存修改”即可一键完成MySQL主从节点的参数修改:查看参数管理界面不难发现,与慢查询相关的参数比较多,那么,这些参数都是如何起作用的呢,相互关系又是如何,满足什么条件的SQL语句才会记录到慢日志中?只有了解这些才能更好地利用慢日志进行系统调优和问题定位。下面,我们以这个线上案例为依

MySQL 2017-12-05 发布
20 浏览

Vue 2.0重构G买卖项目经验分享

G买卖H5是运行在多端的游戏交易平台。基于产品层面的功能升级以及提高开发效率的需求,前段时间我用Vue和Webpack对项目进行了一次渐进式的重构。所谓渐进式,即每个周期仅对部分页面进行改造,不影响其他业务的开展。这次我改造的是我买到的/我卖出的订单列表以及订单详情。此次分享主要有以下几个点:核心技术实现组件化数据管理代码层面改善点遇到的坑持续优化点核心技术这次重构用到的核心技术是vue2.0和webpack1.0。接下来对它们进行简要的介绍。Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue的核心库只关注视图层,并且非常容易学习。具体可以从官网学习它的用法。Webpack是当下最热门的前端资源模块化管理和打包工具,它可以将很多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源,还可以将按需加载的模块进行代码分割,等到实际需要的时候再异步加载。下图是官方对Webpack的简介,通过这幅图看出,相互依赖的模块文件,会被打包成一个或多个js文件,可以减少H

Vue.js 2017-12-05 发布
AD 友情赞助