k8s
Install minikube
https://minikube.sigs.k8s.io/docs/start/
Debian:
1 | curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb |
start your cluster
minikube start
install kubectl
下载curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
下载sha256: curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
校验sha256: echo "$(<kubectl.sha256) kubectl" | sha256sum --check
https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
1 | curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" |
安装 minikube
vue2 reactive基本原理demo
总
以下代码均可以在nodejs和chrome的console里运行
以下均未考虑兼容,空判断,父类属性,解除绑定, 多层关系, 循环调用,多次调用等
Step 1 接管赋值和取值
1 | const demo = {}; |
专门做了个赋值取值不一致的乘2
chrome inspect 404
问题
chrome://inspect 调试android 打开404
常见的问题是 因为这个网址是在线的被墙了
挂个代理就行
但并不是这个问题(同一个手机里面 chrome的页面能调试,但要调的应用的页面打开404)
手机应用里的 浏览器版本@6cd201cc270433b22442a58084295da1ff3c1370 并没有对应的调试 (87.0.4280.86)
作为对比@d8a506935fc2273cfbac5e5b629d74917d9119c7 (86.0.4240.198) 是可用的
https://chrome-devtools-frontend.appspot.com/serve_file/@7f3cdc3f76faecc6425814688e3b2b71bf1630a4/inspector.html
最近 ubuntu snap 管理的chromium 貌似停在了一个尴尬的版本上, 升级了一下?似乎也不是这个问题
解决
让客户端给了一个新的包(浏览器版本换了)
参考
https://stackoverflow.com/questions/33632793/chrome-inspect-without-internet-connection
https://stackoverflow.com/questions/47723176/remote-debugging-chrome-on-android-while-offline
android 11 wireless adb
mkfifo sh nc
highlight menu item when scrolling down to section
对于css
1 | html { |
用id + hash的方式滚动
对于js
事件:
1 | window.addEventListener('scroll', callback); |
throttle + js判断后 再增删 class
详细:下面30k viewed的页面
https://stackoverflow.com/questions/32395988/highlight-menu-item-when-scrolling-down-to-section
call this
直接上代码
1 | function fn(){console.log('fn print')} |
根据mdn上的call的文档
function.call(thisArg, arg1, arg2, ...)
所以
1 | fn.call(fn1) // 调用fn函数,在函数执行中的 this = fn1, |
宏任务 微任务
总结
setTimeout 启动的宏任务
promise(以及await的写法) 和 observer 都是微任务
执行是单线程,当宏任务执行完后,把所有等待的微任务执行后,才会执行下一个宏任务。
然后作者举例了一个稍微特殊一点的,html的事件冒泡,父子元素都有点击事件。
鼠标点击子元素。分发是靠浏览器分发,对于js的任务是两个click。
代码调用子元素点击事件,也会触发冒泡,但是对于js的任务是 这个调用代码。
因此上面两种看似相同的点击会有不同的执行顺序。
参考
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
有精力建议,直接看上面原文,作者的demo做得很好的!
以外的话 还有mdn的文档看
https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide
https://zh.javascript.info/event-loop
对于不应该阻塞事件循环的耗时长的繁重计算任务,我们可以使用 Web Workers。https://html.spec.whatwg.org/multipage/workers.html
这是在另一个并行线程中运行代码的方式。
Web Workers 可以与主线程交换消息,但是它们具有自己的变量和事件循环。
Web Workers 没有访问 DOM 的权限,因此,它们对于同时使用多个 CPU 内核的计算非常有用。