- 
      
        
vuex和表单
当使用vue构建大型应用时,使用vuex管理一部分状态是很好的选择。 但是因为vuex的状态要通过mutation handler改变,这就意味着在表单中无法使用v-model的双向绑定。 ... - 
      
        
获取图片的实际尺寸
有时候我们会遇到需要获取图片的实际尺寸的情形,而图片的width和height属性并代表图片的实际尺寸。 还好现代浏览器提供了在<img>元素上提供了naturalWidth和na... - 
      
        
linux常用操作
这里记录一些常用的linux操作,用于参考。linux版本为Debian8。 设置sudo 设置sudo是一项重要的权限管理手段。通过命令行设置如下: <% highlight bas... - 
      
        
在JavaScript自定义事件和触发事件
事件在JavaScript中处于核心位置,我们可以使用各种预先定义好的事件完成各种各样的交互。 除了使用预先定义的事件外,我们也可以使用JavaScript的不同平台本身提供的接口实现自定义事... - 
      
        
使用FormData接口实现AJAX上传文件
使用AJAX和JSON是现在和服务器进行通信的标准形式,但是直接这样对file类型的input的内容进行上传是无法成功的。因为对文件进行序列化后得到的是一个空对象。 1 <input t... - 
      
        
让file类型的input每次选择文件时都触发「change」事件
使用type为file的input可以方便地实现文件上传功能。 在使用这个input时通常是在它的change事件处理器中执行必要的逻辑。 而change事件只有在内容发生变化的时候才会触发... - 
      
        
在Debian 8下安装ruby
虽然不是rubyer,但是还是会遇到需要ruby环境的情况,比如搭建sass环境。 之前有装过ruby,但是现在在一个新的机器上装的时候,依然是搜索,比较不同人提供的略有差异的安装方法,然后选... - 
      
        
创建由字符串重复多次形成的字符串
在ES6中为字符串新增加了repeate方法,可以方便地创建由某个字符串重复多次形成的字符串。 该方法接受一个指定重复次数的自然数作为参数;当使用负数或者无穷大作为参数时会抛出RangeErr... - 
      
        
script的「async」和「defer」属性
对于一个包含外部样式表和外部脚本的网页而言,当页面解析到<script>标签时,会下载并执行脚本,同时暂停页面的解析,即脚本的执行阻塞页面的解析。 另外,脚本的执行需要等到CSSO... - 
      
        
手机浏览器的视口
我们知道,桌面版浏览器只有一个视口,这个视口就是浏览器主窗口区域(显示网页内容的区域)。这个视口也是CSS布局中的初始包含块,所有布局最终都是相对于初始包含块,即这个视口。 手机浏览器却有3个...