代码 > 记录 element vue的upload组件的使用
2018-08-23
感觉智商再一次受到了鄙视。
一路既往的无法从文档和源代码中找到思路。
最后相想通了,使用upload组件需要两个变量。
一个用来初始化和清除组件的附件列表。
一个在onChange事件中赋值,用来记录附件的最新文件列表。
filelist的真实值可以作为数组循环,可以通过子元素status是否为success来判断成功与否,可以通过response来获取服务器的返回值。
大概代码如下:
<el-upload
class="upload"
drag
action="/file/upload"
:on-change="onFileChange"
:file-list="FileList"
limit="1"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</el-upload>
'onFileChange':function(file,filelist){
this.Model.FileList=filelist
},
'onSubmit':function(){
let files=[]
let self=this;
for(let file of this.Model.FileList){
if (file.status==="success"){
files.push(file.response.url)
}
}
self.Form={
Content:this.Model.Content,
FileList:files
}
},
代码 > 记录:element ui库中分页器(Pagination)初始页一直为1的问题
2018-08-21
被这个问题折腾了4个小时。
代码都爬过,都没注意到。
各种可能都尝试过。
最后通过发散关键词搜索才找到问题。
分页器的total设为0和设为null效果完全不同!!!
设为0会因为当前页无效,重置为1(谁能告诉我什么这种情况1有效了……)
视为null会不判断当前页是否有效。
文档中完全没有体现这一点……当然,element的文档本来就不全……
我觉得靠我自己要能debug到这一点至少要花几天。
我既不会强行限制current-page,也不会把null和0做这样的区分……
看来还是太菜啊。
附救命的issus链接:
https://github.com/ElemeFE/element/issues/2823
update@2018-12-18
这个坑又踩了一次。
不光current-page要设为null
total也要设为null
代码 > 记录:go get 翻墙安装
2018-08-06
之前都是用proxychain和proxifier来代理的。
这次下fsnotify时用了个简单点的方法
git config --global http.proxy socks5://127.0.0.1:7070
http_proxy=socks5://127.0.0.1:7070 go get github.com/mattn/go-sqlite3
git config --global --unset http.proxy
代码 > gitlab蛋疼的升级修复
2018-05-11
公司服务器手兼升级gitlab,然后挂了……
docker logs查日志,一堆utf8数据无法插入,而且明显是merge中生成的数据……
大概是
Incorrect string value: '\xE6\x9D\x83\xE9\x99\x90...' for column 'commit_title'
蛋疼啊。不停手工修改字段的字符集。
代码 > 我为什么喜欢golang
2018-02-12
接触golang一年了,自己的小框架,准确的说是网络代码包也离预期完成了十之七八了。
的确发现,自己挺喜欢这门语言的。
而反思为什么喜欢这门语言,其实很简单,因为我菜,而且知道自己菜。
一直以来,用过的语言里,可以说最不喜欢的就是PHP和Javascript了。
我不知道为什么这两门语言会有人觉得简单。
对我而言,很难。
不能确定的变量类型,各种隐藏着的类型转换。
只要代码堆积的一多,自己都不感去想有多少问题。
反观golang。
静态编译,有defer,chan,go来降低心智负担,真的很省力。
其实早早的就知道,自己只能算是个票友,能力有限,一直想各种方法来降低写代码时的心智负担,使得尽可能的作出更复杂的程序。
毕竟,换语言容易,换脑子难。
我菜,我自知,我用golang.
代码 > 开始试用微软的visualstudio tfs
2018-01-30
之前的私有代码托管都是放在bitbucket的。
说实话,bitbucket是个不错的服务。但是和github同质化太严重了。
和github同质化严重的,之前还有code.google.com和codeplex,现在都已经在欢声笑语中打出了GG了。
所以,虽然已经用了好几年bitbucket了,但在知乎上看了大软吹轮子哥推荐,还是试用一下。
到目前为止,感觉还算良好
代码 > https的效率影响
2018-01-27
blog重构后,在本地跑了下性能测试。发现https,至少是nginx的默认设置对效率的影响还是很大的。
本地环境:rmbp 13,2014 mid 中配
debian testing,nginx version: nginx/1.13.8
测试结果:
使用证书和不使用证书,在某些情况下能有一个数量级,也就是10倍的效率差距。
测试结论:
普通应用全上https证书自然是没问题的,毕竟前端的负载均衡是最容易扩充的。真的要求极限性能的地方,比如内网验证服务,还是要考虑下的。成本敏感的话,全站https还是需要考虑下的。
测试数据:
直连:
ab -n 10000 -c 100 http://127.0.0.1:8000/site/blogi/150-
Requests per second: 19273.02 [#/sec] (mean)
nginx反代:
ab -n 10000 -c 100 http://local.jarlyyn.com:1000/site/blogi/150-
Requests per second: 12578.55 [#/sec] (mean)
nginx https(let's encrypt证书)反代:
ab -n 10000 -c 100 https://local.jarlyyn.com/site/blogi/150-
Requests per second: 1173.36 [#/sec] (mean)
nginx配置:
server {
ssl on;
ssl_certificate_key /ssl/local.jarlyyn.com.key;
ssl_certificate /ssl/local.jarlyyn.com.fullchain.crt;
server_name local.jarlyyn.com;
listen 443 http2;
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8000;
}
}
代码 > 记录:golang中错误在for range中对值使用了指针。
2018-01-08
某段程序出错,最后定位到错误在大概这样的结构
for _, v := range data {
c <- &v
}
这样,整个cannel里,都只有最后一个v值
整理了下思路,也很好理解。
这样的代码某种角度相当于
{
var v int
for _, v = range data {
c <- &v
}
}
而非
for _, v = range data {
var v int
c <- &v
}
那自然都是最后一个值了。
作为一个每个循环中都要使用的值,自然不可能不停的创建新的。这太不环保。
但直接的写法里比较难直接看出来。
记录下,以后至少记得解决的方向
代码 > 记录:通过golang的reflect包创建value的指针
2018-01-03
这个问题困扰了我一定时间,搜了一圈后发先自己2了
先用New创建空指针
然后给指针的Elem设置为具体的值。
主要一直以为New出来的对象没发用,是个zero value,到处panic,没反映过来elem还是可以用来set的。
其实想想也是,如果没法赋值的话,这个New函数有什么用……
大概代码:
var v = mapvalue.MapIndex(reflect.ValueOf(key))
var vp = reflect.New(v.Type())
vp.Elem().Set(v)