Daisydan

一生想做浪漫极客

近期项目总结

前两个星期接到一个需求:仿照阿里云做一个类似机器学习平台的项目。当时一脸懵逼,主要是以前没做过类似的东西,脑海里面还没有任何思路,以为自己完成不了这个东西。但两个星期后的今天,大概的东西已经被我完成了,期间收获还是挺多的~~ 收获一:让我产生了接受挑战的欲望 很多事情,不是我们一开始就会的,是我们不断尝试,不断总结收获的。当你遇到问题的时候就是你进步的时候 收获二:能运用Jsplu...

vue项目总结

一、既然是组件化开发,避免不了组件间的通信,以下列出各组件的通信 1、父组件通过props属性传递数据给子组件(注意:HTML 特性是不区分大小写的。所以,当使用的不是字符串模版,camelCased (驼峰式) 命名的 prop 需要转换为相对应的 kebab-case (短横线隔开式) 命名) 2、父子组件的通信(触发事件使用驼峰格式的自定义事件名称,在父组件中就可以使用on-evn...

一场MYSQL引发的血泪史

忍不住开头想来一句“我靠!!!!!!”; 额,不要介意哈,下面我们进入正题,嘿嘿~~ 场景:启动后台的user-service时,启动异常; 解决过程: 1、排查端口号有没有被占用,结果没有被占用,所以排除 2、排查本地mysql是否正常启动,结果能进去,所以排除 3、排查代码原因,其他同事能正常启动,所以又重新到gitlab上clone了一份代码,结果报同样的问题,所以排除 4、...

项目开发中兼容性总结

时间过得还是蛮快的,已经是入职新公司的第二周了,上篇博客写的时候还在各种面试阶段。 最近两周一部分时间在做和兼容性相关的工作,对我来说也是一个经验,因为之前在兼容性方面也没专门花时间去仔细做过。下面我总结下最近遇到的一些兼容性方面的问题及答案: q: 鼠标点击a、select、input、button等标签在火狐和IE中会出现虚线框 a: /**** 清除ie的默认选择框样式清除,...

方格布局

最近被问到一个很有趣的问题,怎样实现默认方格块依次排列从左到右,从上到下依次排列,鼠标滑过每个方格块时,边框变为红色,如下图所示: 当时看到这些方格块,脑海里面首先想到的就是table布局,当时的基本思路是先用table布局(table要设置合并边框模型border-collapse:collapse;);然后在每个td标签里面使用使用span标签占满整个空间,hover的时候borde...

“圣杯”及等高布局的几种方案

不了解的人可能不知道“圣杯”及等高布局是个啥意思,嘿嘿,其实在昨天之前我也不知道这个名词,但你一定会知道它的内容(其实就是我们常见的三列布局,左右两边固定宽度,中间自适应并且这三列是等高的)。经本人亲证,总结了以下几种,话不多说,直接进入正题: 公共html部分: <body> <div class="main" id="main"> ...

Http Headers里必须详细了解的>-<

Http消息头目前大致分为请求头和响应头,具体详细内容可点击查看,这里我就详细描述两大点如下: 一、浏览器缓存相关 1、Cache-Control no-cache(并不代表浏览器不缓存,而是在缓存前要向服务器确认资源是否被更改); no-store(绝对禁止缓存); max-age(在max-age这段时间里浏览器就不会再向服务器发送请求了); s-ma...

Vue实践中的几个折腾点

组件间事件派发与接收 在用vue实现外卖页面的时候,当点击+的时候小球下落一个,但+和小球分别在不同的组件中。这是就需要在两个组件间进行事件的通信。由于在vue2.0中$dispatch 和 $broadcast被弃用,需要采用新的方式如下: 在初始化vue之前,给data添加一个 名字为eventhub 的空vue对象 /* eslint-disable no-new */ new Vu...

Fetch API

自我从事前端,一直使用XMLHttpRequest(XHR)发送异步请求;直到最近了解到Fetch API,发现它完美基于事件的模型与最近流行的 Promise 和 generator 异步编程模型,然后果断替换掉ajax换这个实用的方法来获取网络资源。 简单示例 Fetch API中最常用的是fetch()方法,该方法最简单的形式是,接受一个URL参数并返回以一个promise对象 fe...

JS常用排序算法总结

1、插入排序 思想:构建有序数列,对于未排序的数据,在已排序的数据中从后向前找到合适的位置插入直到未排序的数据个数为0(时间复杂度为n^2);(注意:在已排序的中找到合适的位置可以采用二分查找提高效率,这样最后的时间复杂度为n^2)。 代码: function insertSort(array){ var i,j,temp,low,mid,high,result,...

面试不会问题总结

1、提供一种方法同时检测基本类型与引用类型 functipn toType(value){ return ({}).toString.call(value).match(/\s[a-zA-Z]/)[1].toLowerCase(); } toType('1111') //"string" toType(['1','2']) //"array" toType(new Da...

《http图解》读后感

读了《http图解》想到了去年面试的时候,面试官问过我一个问题:url输入浏览器到页面呈现给我们,中间发生了什么?当时听到这个问题的时候脑子里空空如也~~如今回想起来,如果面试官如果再次问起,我会怎样回答呢? Now,我会给出我自己的理解: 1、url输入到浏览器,负责域名解析的DNS服务会通过域名查找对应的IP地址(也就是获得url对应的ip地址); 2、利用TCP/IP协议族进行网络通...

总结及计划

打开博客,突然发现自己已经好久没有写博客了,再忙也得抽时间写写博客。 来到新公司将近半年了,感觉收获的不少也不是很多,大部分还是自己很少总结。今天刚好有时间,总结一下顺便计划下年底前要完成的任务。 总结 1、了解到了typeSript; *TypeScript增加了可选类型、类和模块 *TypeSript可编译成可读的、标准的JavaScript(ts编译成js) ...

webpack打包工具

最近在webpack上折腾了几天,终于有了眉目,差点就要放弃了,折腾的过程中最大的收获就是:掌握了学习新东西的方法~~ 折腾的第一点:下载webpack 最开始全局下载webpack,也就是npm install -g webpack比较顺利,但是后来在根目录下npm install webpack,一直报错如下: 最关键的是我在别人电脑上一安装就成了-- 在网上查了各种解决方案,但...

随笔

想到啥就写啥了 7月的尾巴渐渐逼近,不得不感叹时间之飞快,这个月貌似发生的事儿还是挺多的,不过总算是挺过来了。。。 新公司也没有之前那么忙了,该多花点功夫在新技术了,上个星期借的书,得快点看完了,感觉自己有时候开始有点懒,还是得慢慢改掉这个坏毛病。 偶然看到的几句话还是挺激励我的:放下懒惰 ––奋斗改变命运,绝招就是把一件平凡的小事做到炉火纯青,就是绝活。提醒自己,记住自己的提醒,上进...

web静态资源缓存自动更新

核心: 在每次发布之前,利用Gulp对所有的静态资源进行预处理,重命名为原文件名 + 文件MD5值 + 文件后缀名的形式。比如register.js重命名为register-87f3f22ee7.js 步骤: 1、先用npm下载gulp-clean gulp-rev gulp-rev-collector这几个依赖,其次配置好gulpfile.js里面的内容(已配置好),有兴趣可...

支付拦截解决方案

额,先说点题外话哈。真实惭愧啊,距离上次写博客差不多有两个月的时间了。该写了,直接进入正题吧,哈哈哈哈… 如果你是直接点击充值跳到另外一个页面,不用向第三方传一些数据,以下就不用看了。 支付拦截解决方案 上个星期和后端做支付对接的时候,遇到一个小问题:点击充值按钮进行充值跳到第三方充值页的时候,充值页被拦截了!!!!! 背景:点击充值的时候后台要我先传金额获取一些数据然后再掉充值接口跳...

神奇的BFC

神奇的BFC BFC,当别人向我提到这个词的时候,我脑袋里是一片空白,工作大半年了,连这个都不知道,甚是惭愧啊~~ 于是在网上查找相关资料整理如下: BFC定义及规则 BFC(block formatting context),汉译为块级格式化上下文 * 内部box会在垂直方向一个接一个放置; * Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的mar...

Promise初探

Promise初探 Promise是抽象异步处理对象以及对其进行各种操作的组件。 创建promise对象的流程如下所示。 1、new Promise(fn) 返回一个promise对象 var promise = new Promise(function(resolve, reject) { // 异步处理 // 处理结束后、...

url从浏览器输入到页面呈现

url从浏览器输入到页面呈现 前段时间有人问我“从输入URL到页面加载完成的过程中都发生了什么”,当时脑袋里的碎片零零散散,就是不知道怎样完整的回答,今天刚好有时间把它给好好整理整理。 主要的流程 DNS解析-->建立连接,发送数据包 -->服务器响应请求,返回给浏览器-->浏览器渲染程序页面。 DNS解析 首先在浏览器输入了一个URL地址...