V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cyrbuzz  ›  全部回复第 15 页 / 共 31 页
回复总数  617
1 ... 11  12  13  14  15  16  17  18  19  20 ... 31  
2021-04-21 13:28:09 +08:00
回复了 eroko 创建的主题 问与答 8 瓶水 2 瓶有毒 6 个耗子 要求单次检验出结果
分成两组 1-4 。

每组 4 瓶编号 1-4 。

用三只,

一只喝 1,3,一只喝 2,3,一只喝 1,2 。

另外一组分别喝,1,3 2,3 和 4 。

A: 13 和 23 死掉的情况,看另一只喝 1,2,死了,1 和 2 都有毒。没死,3 确定有毒,4 可能有毒看下一组情况。
B: 13 死了,23 没死,1 有毒,4 可能有毒看下一组情况。
C: 13 没死,23 死了,2 有毒,4 可能有毒看下一组情况。
D: 13 和 23 都没死,4 可能有毒看下一组情况。

此时看另一组:

A1: 13 和 23 死掉的情况,4 死了,3 和 4 有毒,4 没死,3 和上一组 4 有毒。
B1: 13 死掉了,23 没死,4 死了,14 有毒,4 没死,1 和上一组 4 有毒。
C1: 13 没死,23 死了,24 或者 2 和上一组 4 。
D1: 13 和 23 都没死,4 死了,4 和上组死掉的那个没死就是上组 4,4 没死,把上组的`可能`换成`肯定`。
2021-04-20 18:06:07 +08:00
回复了 balabalaguguji 创建的主题 编程 我来说说异步框架的最大缺点
个人理解= =。

异步模式不是把同步的代码异步化,而是那段代码本身就是一个异步的 IO 。

想把一段代码异步化,得先知道这段代码能不能异步,比如

```
a += 1
```

是一段不能异步的代码。

而一个网络请求则一般都会提供 阻塞和非阻塞 两种模式:

```
http({
async: true(false)
})
```
这样的配合事件循环就可以做到异步。

在 Python 中,像是`requests`是一个阻塞的网络请求,它并没有提供非阻塞的参数,无法直接用类似线程的`async(requests.get, xxxx)`这样的方式去将它异步化,而是应该在底层 socket 建立连接时就使用非阻塞的模式,交由异步的事件循环在这条 socket 等待响应的这段时间去干别的事。

按楼主的举例,commands 是一个阻塞的命令行,确实想用异步应该寻找的是一个非阻塞的命令行而不是想着有一个函数可以把 commands 异步化(事实上 Python 也有,`asyncio.base_event.run_in_executor`函数可以让传入的同步函数放在一个线程 /进程池中执行,同时外部还可以继续用异步的 async/await 或者回调)。

而在 Js 中,如果你在主线程中执行一段一直会占用 CPU 的代码(while(1){})也会阻塞住整个页面。

异步主要是用来解决 I/O 密集的问题的,I/O 所花的时间主要在网络读写,硬盘读写等。

如果一段代码的主要消耗的是 CPU,用异步并不是一个好选择而是应该尽可能榨干 CPU 的性能,衍生出来的就是线程(协程)/进程。

所以在 Python 这个啥程都有的语言里...

在主要是 I/O 的场景里,用非阻塞的库上异步绝对是一个性价比高的选项,其他程切换的开销再小也有开销。
在主要是计算的场景里,多跑几个 Python 进程比啥都管用。

访问量不大的网站用什么根本无所谓...数据量够小的情况下,选择排序和快排根本看不出差别。
React 版的源码是打包后的?一个上传失误?

项目只有前端内容,没有与后端交互的内容,还是有一个比较好。

画龙猫的项目挺有趣。

记账的项目有点简陋= =...
2021-04-19 09:46:05 +08:00
回复了 LeeReamond 创建的主题 Vue.js vue 如何实现 loading 读条,加载完成后显示页面?
还有一个思路是用 SSR,Nuxt 里写 layout,这样就可以完全使用 Vue 的生命周期。
荆棘。

谐音:镜姬,痒痒鼠反弹伤害的装备。
谐音:军纪。

~
2021-03-30 10:51:39 +08:00
回复了 Newyorkcity 创建的主题 问与答 javascript 请问如何为 Promise 添加默认的 reject 行为?
```
function parse(res) {
a = Promise.resolve(res)

const then = function (func, rej) {
if (!rej) {
rej = () => {
console.log(1);
alert(1);
}
}

a = a.then((res) => {
return new Promise((resolve, reject) => {
try {
resolve(func(res))
} catch(e) {
reject('err')
}
})
}).catch(rej)

return thenObj
}

const thenObj = {
then: then
}

return thenObj
}


parse({test: 'test'}).then((item) => {
console.log(item)

return item
}).then((item) => {
console.log(item)
throw 'error'
})
```

可以封装一下 `.then`。
2021-03-24 16:19:14 +08:00
回复了 xiaoming1992 创建的主题 前端开发 公司招聘前端,来的人让我头皮发麻
```
const list = document.querySelectorAll("li")
for (let i of list) {
i.addEventListener(...)
}
```
这个有啥不好吗,除了没限定 ul?

当然也可以给 ul 加事件判断冒泡的发起元素,这样只需要监听一次点击事件。
2021-03-20 22:23:09 +08:00
回复了 FrankFang128 创建的主题 分享创造 写给前端工程师看的函数式编程对话(系列文章)
递归最大的缺点是不是性能不高?
2021-03-20 16:14:11 +08:00
回复了 eachann 创建的主题 程序员 各位技术心得都是用什么做记录的
Vscode 丢 Github= =..
2021-03-20 00:17:16 +08:00
回复了 Umenezumi 创建的主题 问与答 公司征集一段代码印制在 T 恤上,过来取经了, 送键盘
`import T-Shirt`
2021-03-12 11:57:24 +08:00
回复了 awwz 创建的主题 问与答 有些孩怕,刚发现 google 浏览器能搜到本地文件
当看到“孩怕”时我略有疑惑很快就懂了,但是我看到“鸭鸭走”和“开始门”的时候只有???和???= =。
@cyrbuzz

这个...比预想的要简单,都有现成的 API 。

```

<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160" onclick="pause(this)" id="ff">
<g>
<rect
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="square"
width="100"
height="100"
x="30"
y="30"
>
<animate
id="frame1"
attributeName="display"
values="inline;none;none;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</rect>
<path
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="circle"
d="m 125,80 a 45,45 0 1 1 -90,0 45,45 0 1 1 90,0 z">
<animate
id="frame2"
attributeName="display"
values="none;inline;none;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</path>
<path
style="fill:#edd154;fill-opacity:1;stroke:#3c352d;stroke-width:2;stroke-opacity:1;"
id="triangle"
d="M 105,105 47,89 89,46 105,105 z">
<animate
id="frame3"
attributeName="display"
values="none;none;inline;none"
keyTimes="0;0.33;0.66;1"
dur="1s"
begin="0s"
repeatCount="indefinite" />
</path>
</g>
</svg>

<input type="text" placeholder="指定帧 1-3" onblur="setFrames(this.value)">

<script>
var a = true
function pause(t) {
a ? t.pauseAnimations() : t.unpauseAnimations()
a = !a
}

var b = document.querySelector('#ff')
cc = {
1: '0',
2: '0.33',
3: '0.66'
}
function setFrames(value) {
b.pauseAnimations()
a = !a
b.setCurrentTime(cc[value])
}

</script>
```

svg 复制自题主给的文章...搜了一下 svg 直接可以指定 onclick,在浏览器里控制台里可以看到 svg 控件有 pauseAnimation 和 unpauseAnimations,顾名思义一个暂停一个不暂停,实现 播放和暂停功能。循环这个不知道是啥..本身就是循环的,指定帧发现了一个叫 setCurrentTime 的 API,这个 API 可以指定当前 SVG 的时间,每个<animate>块都指定了 values 和 keyTimes 对应时间的 display 值,建立一个映射表即可。
17 点 39 分看到这个,准备试试。
2021-03-10 10:59:08 +08:00
回复了 xuegy 创建的主题 C++ 移植了一个库,眼睛快要瞎了。
@xuegy

好吧~,have a good day~.
2021-03-10 10:50:20 +08:00
回复了 xuegy 创建的主题 C++ 移植了一个库,眼睛快要瞎了。
@cyrbuzz
vscode,单行开正则...
2021-03-10 10:49:48 +08:00
回复了 xuegy 创建的主题 C++ 移植了一个库,眼睛快要瞎了。
(.+) (.+) = (.+);
$1 $2($3);
2021-02-25 16:49:32 +08:00
回复了 xuqiccr 创建的主题 宠物 迫于要有猫了,想知道大家的宠物都起的啥名
比格沃斯。
solarized light 真香。
2021-02-19 22:42:14 +08:00
回复了 boblin 创建的主题 前端开发 前端技术方面的性能优化有哪些?
https://github.com/HuberTRoy/myown/blob/master/%E5%9F%BA%E4%BA%8E%E6%80%9D%E8%80%83%E6%89%80%E5%81%9A%E7%9A%84%E6%8E%A2%E7%B4%A2/%E6%80%A7%E8%83%BD%E6%96%B9%E9%9D%A2%E7%9A%84%E6%8E%A2%E7%B4%A2.md

https://github.com/HuberTRoy/myown/blob/master/web%E7%A8%8B%E5%BA%8F%E4%BC%98%E5%8C%96%E6%80%9D%E8%B7%AF.pdf

优化公司产品时的总结,lighthouse 从不到 10 分已经提升到了 50~60+。

我自己的实践优化方面是:
1. 第三方资源非阻塞加载,async/defer 标记,这个提速很大。
2. DNS/CDN(百度统计等)链接的预查询与预连接,这个看不出来效果,提速微小。
3. 服务器端支持 HTTP2,比 HTTP1.1 快了不是一点两点。
4. 利用服务器端进行延迟加载,本身是个 Nuxt 的服务器端项目,利用 client-only 标签配合 import() + v-if 条件渲染,其实就是个分块+懒加载不过效果巨大,鹅且平时写组件的时候几乎都用 import 静态导入,调用频率低的模块也可以用 import()来改写。
5. webpack 打包时的 tree-shaking,老生常谈的 lodash 和 lodash-es 等等,这个减少的是传输体积,如果项目本身冗长这块提升也非常大。
6. 缓存这个就不用说了,检查检查有没有配置合理。
7. 图片移动端剪裁成 2 倍实际显示大小的尺寸,PC 端 1 倍,牺牲小部分清晰度的同时大幅减少传输体积。
8. 项目具体内部的代码优化,比如之前实现了一个利用 vue computed 属性的动态设置 style 的滚动效果,发现占用 CPU 20%以上....然后改成了 animation 。
2021-02-12 11:42:21 +08:00
回复了 LeeReamond 创建的主题 问与答 css 闪烁特效求助
transition 是一种从`有`到`有`的动画。所以你需要给.flashing 一个初始值 .flashing { opacity: 0 }。

另外直接写楼上的动画比用 JS 更简洁清晰易懂。
1 ... 11  12  13  14  15  16  17  18  19  20 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2784 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 15:18 · PVG 23:18 · LAX 08:18 · JFK 11:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.