type
status
date
slug
summary
tags
category
icon
password
1. [Vue warn]: You may have an infinite update loop in a component render function
天坑,没有之一。
console 里直接报错:
咕狗了一圈感觉都讲得不清不楚,什么
v-for
时改了 vm.$data
之类的啊……最后写完了想了半天终于想通了,大概是:一个对象 A 交给 Vue 跑
v-for
,过程中由于各种因素,产生了对对象 A 内容的更改(我的例子是对象 A 有个方法,调用来返回数据,这其中 会对 A 的内容产生更改 (虽然调用完后的结果是相同的),这种操作会导致 v-for
→ Vue 检测到对象更改
→ 重新渲染
(这里又调用一次更改 A 的方法) → v-for
→ Vue 检测到对象更改
→ loop...
避免方法大概就是不要把会更改自身内容的方法写进
v-for
里面去。然而一改就要改好多地方,最后弃疗了。天坑。
2. 复制对象后,对源对象的修改影响到复制的对象
说人话就是“ a = b,然而改了 b 之后 a 也跟着改了”。
咕狗了半天,大概是 浅拷贝 和 深拷贝 的区别。
大概可以用符号链接来描述吧。普通 a = b 相当于 a 只是 b 的一个符号链接,并不是完全的复制。
要复制的话大概需要用
Object.assgin()
这个方法。然而这个方法是 ES6 的,IE 全家都没法用,又一个天坑。
解决方法是直接引进
polyfill
这个 js 库,作用是让那些上古时代的产物支持 ES6 语法,可以说是模拟器?另外,通过一个很好很强大的
polyfill service
还能自动检测当前浏览器,以决定加载 polyfill
的内容。对那些使用现代浏览器的用户来说实在是福音,不用因为照顾上古浏览器而拖累性能了(现代浏览器加载 polyfill 的话也会拖累的吧?)。直接调用 JS 即可。
3. (13)Permission denied: exec of … failed
CGI 需要具有执行权限。如
rwxr-xr-x
(755)。chmod 一下即可。
4. (8)Exec format error … (同上)
Notepad++ 傻逼!!!!!
Notepad++ 傻逼!!!!!
Notepad++ 傻逼!!!!!
除了没在 CGI 脚本开头加
#!/usr/bin/<解析器名称>
之类的这种破事之外,剩下的就是某些 奇怪的 文本编辑器莫名在脚本开头 加了奇怪的东西。网上的说法是文件头前 3 字节加了奇怪的东西进去,反正这种东西没人知道的啦。
解法:用专用于写代码的文本编辑器(比如 VSCode)新建一个文件,把原来文件的内容复制过来保存。或者直接 vim 然后整个粘贴。
之前有说法是什么换行符(CRLF、LF)的问题,不过我是用 git 自动部署的,git 会自动帮我转换换行符。
最后焦点就落在了 Notepad++ 上面。用这货写的 Python 无一例外全部报错了。发现直接全文复制,ssh vim 粘贴就好了。
不是我不想用 VSCode 写啊!!!4G 内存开个 Webstorm 加 Chrome 已经要死了,再开个 VSCode 就不用活了好嘛!!(推荐 PyCharm 的请立即去跳楼)
哦对了,ReadyBoost 好像还是有点用的。能不能把我的 32G 三棒卡写坏啊,我的 chromebook 不认这卡想换一张
5. malformed header from script ‘blabla’ : Bad header: blabla
又一个上古巨坑(巨坑真廉价)
header 错误大概就是 CGI 脚本返回前要指定格式,比如
Content-Type: application/json
之类的,另外好像还要输出两行换行。问题是我确确实实这么做了:
于是我被折腾了一个小时,其间还想过是不是 Apache 的 Bug(我有好好学习提问的智慧),因为我用 Python 自带的 http.server 毛事没有。
最后在文件里发现了这么一行
??????
结论:在调用
sentJSON
回传之前就已经 print 了一个 readId 出去了,导致直接报错。(这样的结果是头部先是 readId 然后才是 Content-Type)
所以千万不要 XJB print 啊,虽然对 debug 很有帮助,但万一留下一个 debug 用的没删掉影响到正常使用就好笑了。
纪念我的一小时(我还打算 debug 完了就去睡觉的)
6. Safari 没法打开 Bootstrap 的 Modal
好像据说是 Safari(反正我是 Safari Mobile powered by iOS 10)不认
<a>
以外的点击事件之类的?虽然可以用 jQuery 解决,不过这未免太不优雅(一边用着 jQuery)。
StackOverflow 上有一个非常暴力的解法是这样的:
这未免太过暴力了,于是我稍微改了一下:
虽然正规的解决方案是把要点击的元素做成标准的
<a>
或者 <button>
就是了。7. (0 >= null && 0 <= null) // true
谁设计的 JavaScript ……