在某次翻阅技术博客的时候,偶然发现有opener这个东西。了解了一下,opener这个东西会带来一个很严重的问题。但是平时好像很少会谈及opener。所以觉得有必要记下来。
jsonp跨域,并谈谈其他跨域的问题
说明
公司小伙伴在用jQuery做jsonp跨域请求时遇到了问题,需要我的帮忙。然而虽然了解jsonp的原理,但是以前从来动手实现过,遇到问题还是一头雾水,最终啥都没帮上,还浪费了时间,唉。回家后自己实现了一下。。。。
部署脚本编写
前言
用Vue-cli搭建的脚手架使用的是webpack-dev-server搭建的服务器,一般情况下都是把开发版的代码另建一个文件,开发完成之后编译后在放到真正的java项目上。那么问题来了,每次打包webpack会在打包的文件名后添加hash值,每次部署都要修改一遍java入口文件里的script和link标签的引入文件名。还要把Vue项目的打包文件移动到java项目指定的位置。so,我觉得需要一个脚本,一键部署,即轻松还不易错。
vue-cli中开发调用跨域接口的问题
说明
用vue-cli开发vue-cli会自己启动一个服务器,后台java也要启动一个tomcat服务器来提供接口,这样问题就来了。在vue-cli服务器下请求tomcat时肯定会出现恼人的跨域问题。经过一番Google之后才知道人家vue开发人员早就想到了这问题。只需要修改一下配置文件就OK
这个问题网上已经有很多博客说明了解决办法,就不再赘述。这次只是做下此次开发的配置。
在实际项目中使用vue开发遇到的问题
前言
终于在实际项目中用到vue了,而且是前端部分从项目结构搭建到项目上线都是自己琢磨出来的。虽然项目不大,但是开发过程中遇到问题、解决问题的过程能让我了解很多东西。加之后台人员只顾自己爽,不管我前端的情况,让我在实际操作中不得不再对项目进行改造,才能让vue-cli搭建的项目用到实际项目中。还好问题最终都能顺利解决,前期搭建项目的耽搁的时间也在后期丝滑般的页面开发过程中追赶回来。所以,开发结束后,赶紧把遇到的问题写下来,把坑填上。
关于web文件上传
再说说文件上传客户端的问题。阮一峰大神这篇解释挺清楚文件上传的渐进式增强。所以原理就不再赘述,就在这记录下实现的方法。
使用express搭建文件上传服务器遇到的坑
说明
最近需要做一个文件上传的功能,但后台还没给API,所以想先用express.js先搭建一个本地文件上传服务器先把功能实现了。实际操作中,发现node.js实现文件上传服务器还有不少坑。所以写篇文章想记下遇到的问题和自己的理解,以备后患。
关于toString、valueOf自动执行的问题
原文:JavaScript 对象转换之toString、valueOf
首先,JavaScript中有3个原始类型,String、Number和Boolean。JavaScript在某些情况下会将数据转换成原始类型,及JavaScript会自动调用toString和valueOf方法来完成数据转换。
node.js处理gb2312编码的文本
由于node.js的读写文件的方法中编码参数不支持gb2312,所以在处理gb2312或者其他node.js不支持的编码格式时需要进行特殊处理,才能让node.js处理中文时不会出现乱码。
关于编码格式
推荐阅读阮一峰的日志。简单的来说呢,编码是为了让计算机显示出各种特殊字符,而设计出来的一张表,这张表把特殊字符与二进制一一对应,让计算机要显示特殊字符时把二进制的数据通过表转换成对应的字符,从而显示出来。所以说,一样的文字,用不同的编码存储在硬盘中是不同的二进制数据,一段二进制数据只有用存储时的编码表才能解析出正确的字符串。
node.js的读写操作。
node.js提供的读写文件方法都会提供字符编码的设置参数(encoding),如果设置了encoding参数,那么node.js读文件的原生方法会把存储在文档中的二进制数据转换之后再提供给你,如果原生方法不支持的编码,那么直接读取二进制数据,然后再用iconv-lite模块转换即可。
npm install iconv-lite
var iconv = require('iconv-lite');
var str = iconv.decode(buf, 'gb2312');
//
var newBuf = iconv.encode(str, 'gb2312');
在处理过后,再用iconv-lite模块转成二进制,然后直接写入文档即可。
注意
不要相信console.log打印出来的东西,console.log不管打印什么格式的内容都能正确显示中文。