爱打瞌睡的三角龙
怎么给仪表图背景设置分段并配置圆角?
我在vchart官网上看到了这个demo:"https://www.visactor.io/vchart/demo/gauge-chart/clock" (https://link.segmentfault.com/?enc=%2B16M08j0WCkreQgnp0HcKw%3D%3D.xOXzlB2wEkiO5w4uVkFdwdjopshvmYVmceBKvUjMyOhv6E%2BLI%2FnNmZjOwmKN%2FK9GiQE5NK4v3zfTR1%2BXFssZSQ%3D%3D)
它看起来像是仪表图的变种。现在我需要将常规仪表图的背景更改为类似的样式,将背景分段并设置圆角。我该怎么办?
爱打瞌睡的三角龙
阿里云主机监控可以导出结果吗?
调 API 呗。
去文档里找你相应的服务的 OpenAPI,比如:
«"https://help.aliyun.com/zh/cms/developer-reference/using-> openapi" (https://link.segmentfault.com/?enc=EGG8iz3GaSJn2GsbyrRu%2FA%3D%3D.Bo%2BUCJcW8hLOHULtkTq7v7H6XRM7wD35jFufAyoMHGP5trGRIn7HiskBMHpBWedHwBJWvpvs9SdroC1wuhKew0tUlbQdCXBmmt%2BsciNU34k%3D)»
爱打瞌睡的三角龙
linux安装autoreconf报错,错误信息见下图,哪位同僚有过类似经验,欢迎评论?
yum install -y autoconf
"autoreconf"命令由"autoconf"包提供
爱打瞌睡的三角龙
threejs中,使用GUI控制纹理的颜色空间为什么不能生效?
gui.add(params, 'colorSpace', {
sRGB: 'sRGB',
Linear: 'Linear'
}).onChange((val) => {
texture.dispose(); // 释放旧纹理
texture = textureLoader.load('./textures/your_texture.jpg', function(t) {
if (val === 'sRGB') {
t.encoding = THREE.sRGBEncoding;
} else {
t.encoding = THREE.LinearEncoding;
}
});
material.map = texture; // 更新材质的纹理
material.needsUpdate = true; // 标记材质需要更新
});
爱打瞌睡的三角龙
用表格组件怎么实现一个热力图?
我想用表格实现一个简单的热力图,即单元格背景色的深浅由单元格的数值来决定,请问有什么比较简单的实现方式?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/6624cd29e9f261df199d7061d6010bdc.png)
爱打瞌睡的三角龙
这种分页滚动加载如何处理?
这个函数 addToResult 接受两个参数:要添加的数据数组 dataArray 和要添加的数据数量 dataCount。它会将数据填充到 group
数组的 children 数组中,保证数组的长度与 count 属性相符。在填充完成后,函数将返回填充好的结果数组。
let group = [
{ label: "a", count: 25 },
{ label: "b", count: 3 },
{ label: "c", count: 4 },
];
function addToResult(dataArray, dataCount) {
let result = JSON.parse(JSON.stringify(group));
result.forEach((item) => {
item.children = [];
});
let totalDataToAdd = dataCount;
let index = 0;
while (totalDataToAdd > 0) {
if (index >= result.length) {
index = 0;
}
let availableSpace = result[index].count - result[index].children.length;
if (availableSpace > 0) {
let dataToAdd = Math.min(availableSpace, totalDataToAdd);
totalDataToAdd -= dataToAdd;
for (let i = 0; i < dataToAdd; i++) {
result[index].children.push(dataArray.shift());
}
}
index++;
}
return result;
}
const dataToPush = new Array(10).fill("data");
let result = addToResult(dataToPush, 10);
console.log("result after pushing 10 items:", result);
result = addToResult(dataToPush, 10);
console.log("result after pushing another 10 items:", result);
result = addToResult(dataToPush, 10);
console.log("result after pushing another 10 items:", result);
result = addToResult(dataToPush, 2);
console.log("result after pushing another 2 items:", result);
爱打瞌睡的三角龙
请问为何antd/dropdown的menu属性传递调用函数生成items会报错呢?
你少了对{}吧
const genDropdownItems = (key: string | number): MenuProps["items"] => {
const items: MenuProps["items"] = [
{
label: {
console.log('收藏: ', key)
}}>收藏,
key: '0',
},
{
label: 2nd menu item,
key: '1',
},
{
type: 'divider',
},
{
label: '3rd menu item',
key: '3',
},
];
//return items
return { items }
}
爱打瞌睡的三角龙
linux 安装 nodejs,为什么环境变量 NODE_MAJOR 无法被填充?
我按照这里的 "https://github.com/nodesource/distributions" 方式在 "ubuntu22.04" 上安装
nodejs 和 npm
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241219/e8308e838c5c0606f7ba70bab84cc1b0.png)
但是遇到了问题,当我执行下面的命令
NODE_MAJOR=18 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
我发现 NODE_MAJOR 并没有填充
pon@T4GPU:~/code/me/reflex_example$ cat /etc/apt/sources.list.d/nodesource.list
deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_.x nodistro main
可以看到,结果不是 "https://deb.nodesource.com/node_18.x" 而是
"https://deb.nodesource.com/node_.x"
«我用的是 bash»
为什么把 NODE_MAJOR=18 加在命令开头却不行,理论上,这也是一种正确传递环境变量的方式之一?
***
加个分号也可以, 但是在使用 python 的时候,是可以不加 ";"
pon@T4GPU:~/code/me/reflex_example$ NODE_MAJOR=18; echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main
难道是因为,不加分号,只对该 shell 的子进程可见,shell 本身不可见?
***
比如我写一个 python 程序
"main.py"
import os
print(os.environ['RUN_MODE'])
然后调用
pon@T4GPU:~/code/me/reflex_example$ python main.py
Traceback (most recent call last):
File "/home/pon/code/me/reflex_example/main.py", line 2, in
print(os.environ['RUN_MODE'])
~~~~~~~~~~^^^^^^^^^^^^
File "", line 679, in __getitem__
KeyError: 'RUN_MODE'
pon@T4GPU:~/code/me/reflex_example$ RUN_MODE=prd python main.py
prd
可以看到直接 "python main.py" 会报错,但是 "RUN_MODE=prd python main.py" 是正常的
爱打瞌睡的三角龙
docker 的 python sdk 如何计算docker 容器的 res 内存使用量?
起了一个 mysql 的 docker 容器
version: "3"
services:
mysql8:
container_name: mysql8
image: mysql:8
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- ./volumes/:/var/lib/mysql
- ./my-custom.cnf:/etc/mysql/conf.d/my-custom.cnf
然后使用 htop 看到 mysql8 容器占用的 res 内存是 556MB
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241218/f88888161b2058236e8c1e3757b0fd3a.png)
使用 docker stats 看到的内存使用量是 739.5MB,和 htop 不一致
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241218/3214dec44fe20fbba35a236bd351f0a9.png)
使用 "docker 的 python
sdk" (https://link.segmentfault.com/?enc=ksnkIxkjQttNM5iwRCd84g%3D%3D.l2VSPz5X9oZ8W8VtJAxCifOaRz2LnKFoeCxmCEyXDBAiaTpEMV3TWtA9iy%2BoTw8X)
读取 mysql8 容器的信息
代码如下
from typing import List, Dict, Optional
from concurrent.futures.thread import ThreadPoolExecutor
import click
import docker
from rich.console import Console
from docker.models.containers import Container
import json
def get_container_info(container: Container):
short_id: str = container.short_id
status: str = container.attrs['State']['Status']
name: str = container.attrs['Name']
from docker.models.images import Image
image: Image = container.image
image_name = image.tags[0] if image.tags else image.short_id
container_stats: Dict = container.stats(decode=True).__next__()
print(json.dumps(container_stats,indent=4))
client = docker.from_env()
container = client.containers.get('c50ca07d3d41')
get_container_info(container)
输出内容:
{
"read": "2023-10-03T03:27:20.913142192Z",
"preread": "0001-01-01T00:00:00Z",
"pids_stats": {
"current": 47,
"limit": 33438
},
"blkio_stats": {
"io_service_bytes_recursive": [
{
"major": 259,
"minor": 0,
"op": "read",
"value": 301391872
},
{
"major": 259,
"minor": 0,
"op": "write",
"value": 1556733952
}
],
"io_serviced_recursive": null,
"io_queue_recursive": null,
"io_service_time_recursive": null,
"io_wait_time_recursive": null,
"io_merged_recursive": null,
"io_time_recursive": null,
"sectors_recursive": null
},
"num_procs": 0,
"storage_stats": {},
"cpu_stats": {
"cpu_usage": {
"total_usage": 114408426000,
"usage_in_kernelmode": 37930579000,
"usage_in_usermode": 76477847000
},
"system_cpu_usage": 105739260000000,
"online_cpus": 16,
"throttling_data": {
"periods": 0,
"throttled_periods": 0,
"throttled_time": 0
}
},
"precpu_stats": {
"cpu_usage": {
"total_usage": 0,
"usage_in_kernelmode": 0,
"usage_in_usermode": 0
},
"throttling_data": {
"periods": 0,
"throttled_periods": 0,
"throttled_time": 0
}
},
"memory_stats": {
"usage": 1346535424,
"stats": {
"active_anon": 4096,
"active_file": 208646144,
"anon": 546168832,
"anon_thp": 0,
"file": 779718656,
"file_dirty": 0,
"file_mapped": 36380672,
"file_writeback": 0,
"inactive_anon": 546164736,
"inactive_file": 571072512,
"kernel_stack": 770048,
"pgactivate": 50248,
"pgdeactivate": 0,
"pgfault": 213604,
"pglazyfree": 0,
"pglazyfreed": 0,
"pgmajfault": 453,
"pgrefill": 0,
"pgscan": 0,
"pgsteal": 0,
"shmem": 0,
"slab": 17898776,
"slab_reclaimable": 17314312,
"slab_unreclaimable": 584464,
"sock": 0,
"thp_collapse_alloc": 0,
"thp_fault_alloc": 0,
"unevictable": 0,
"workingset_activate": 0,
"workingset_nodereclaim": 0,
"workingset_refault": 0
},
"limit": 29296934912
},
"name": "/mysql8",
"id": "c50ca07d3d41b26b9fca21bb90b942919066352c0f1866750afb7f2ab611d5ea",
"networks": {
"eth0": {
"rx_bytes": 169903746,
"rx_packets": 423759,
"rx_errors": 0,
"rx_dropped": 0,
"tx_bytes": 18029112,
"tx_packets": 228139,
"tx_errors": 0,
"tx_dropped": 0
}
}
}
可以看到 memory_stats 的 usage 是 1346535424,换算一下就是
1346535424/1024/1024/1024=1.25GB,这个结果和 htop 和 docker stats 都不一样
所以有两个问题:
问题一:看来需要组合计算 memory_stats 下面的 stats 中的某些参数才能获取和 htop 和 docker stats
一致的结果,但是我不知道该用哪些参数
问题二:为什么 htop 和 docker stats 的结果不一样
爱打瞌睡的三角龙
vue如何引入其他工程页面?
直接单独部署,然后搞个 "iframe" 嵌套进来就行了吧。
爱打瞌睡的三角龙
这种echarts图怎么实现呢?
看到一个类似的,你参考下:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241210/f1b7aca77c4a5bd5499cb1d3d3f55a65.png)
"https://www.makeapie.cn/echarts_content/x1yYTM_Sy6.html" (https://link.segmentfault.com/?enc=2Je30MchaEa8aJEihv8Mbw%3D%3D.XAE6Ch%2BdeH4hc0zsoLvae3SZtDTwF32in8%2F114NTsvHdEooI%2BkeTZJMr83CtPK6%2B6UEuHXrbB%2BwKCS6z27Q8nw%3D%3D)
爱打瞌睡的三角龙
有大佬知道这种占比怎么实现不?
根据题干补充, 上面的条形进度条需要用JS写用二楼的写法就行了, 主要是根据进度修改"-webkit-mask-image: linear-gradient(to right, #000000 0%, transparent);"中"transparent"的值:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241209/034e23a6c1138ce8182da9f1520892a3.png)
修改方法与原回答类似, 动态修改"style"就可以了:
`mask-image: linear-gradient(to right, #000000 0%, transparent ${21}%)`
小箭头用绝对定位然后配合transform或者left都行:
div {
width: 200px;
height: 20px;
background-color: aquamarine;
position: relative;
}
span {
position: absolute;
}
箭头
const SPAN = document.querySelector('span')
// 下面二选一
// SPAN.style.left = '50%'
SPAN.style.transform = `translateX(${179}px)`
小箭头直接与渐变的条纹带直接用图片就可以了
爱打瞌睡的三角龙
前端开发,windows下如何调试safari兼容问题?
做不到,让老板给配 Mac 电脑吧。
其实二手 Mac mini 也挺便宜的。
爱打瞌睡的三角龙
后端返回的html渲染后点击按钮获取dom修改行内样式,浏览器还是显示之前的样式没有动态更新?
能打印出来? "!."我还是第一次见
爱打瞌睡的三角龙
求:微信彻底关闭后,小程序可以在后台继续执行某些程序吗?
我有个需求,需要微信关闭后,小程序继续执行某些程序,并且可以放音乐和震动,请问支持吗?
爱打瞌睡的三角龙
解决 JS 正则转成字符串后出现乱码?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/7c52659e58011f1f0235a8e473529381.png)
在应用中,我需要将该正则放到键值对并进行 "JSON.stringify",但这一做法会导致正则中的 "\u4e00-\u9fa5"
发生乱码,尝试了多种方法,但当赋值时就已经发生变化,有没有大佬知道要怎么解决?
// 当 presetRegs 作为下拉选项时,value 就已经乱码了
const presetRegs = [{ label: "文字限制(中文)", value: "/^(?:[\u4e00-\u9fa5·]{2,16})$/" }];
// 最终表单中的 expression 字段拿到的也是乱码值
const form = reactive({
...,
options: {
rules: [
{ expression: "/^(?:[一-龥·]{2,16})$/", errorMsg: "写个中文吧" }
]
}
});
form.options = JSON.stringify(form.options);
// post form
爱打瞌睡的三角龙
困扰好几个月的问题 是个优化项 断断续续有人提 但是确实没有好头绪 来sf请教一下?
可以把getInitialData的请求放在webwork中进行请求,这样就不会阻止页面渲染了
官方文档"Web_Workers_API" (https://link.segmentfault.com/?enc=4%2FKtv9F0nMkQTZlg9kv77w%3D%3D.rY7%2B2wDjaeZDQnq6bipFxgW4LtW22s8Rr%2FcmAqc5Sx%2FOQKS2aJR9FsUtKK1UKIKNkMiuHA542cvK6XQ6RhiEOXvvpwnVlLaJmk46rSi%2FXKIDrRfqVc%2BeMpAcsKDGsxIQ)
网上搜的文档"掘金webwork" (https://link.segmentfault.com/?enc=1fsqRRw0DKDPqlqmS6992A%3D%3D.tmgN5zKlw7xHFxCfxOm2M6z6MkiegoAPRNIHKkkhuxhz2KuPRmlmqCVI3%2Bvnc4EB)
«"链接2" (https://link.segmentfault.com/?enc=nOLiprrWlz4WfstdOz3b1w%3D%3D.9YUYBdP7nqSVbzG6VkC1sQe9Gw3ZxP3P614NKaG6vr%2BJ8%2BrgOgkxxoMQOdzZLa5T)»
就是上网搜一下就行,这个很简单
爱打瞌睡的三角龙
请问能用deciaml js替换原来js的+-*/符号功能?
可以试下a-calc
"https://github.com/Autumn-one/a-calc-old/blob/main/README_ZH.md" (https://link.segmentfault.com/?enc=fndHTC63Ti1UGt%2Fl8xm9uw%3D%3D.UEzgrdj0NBvexpgpUb9O8pgAUfNUoZYnrvvmgag6WqM5dGzM2SThMdkaUhSZd1Mkm2Ntz0peY6gvUHIm4G1NMg%3D%3D)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241127/779e3bd6a8fbc0c89644fa790aad1686.png)
爱打瞌睡的三角龙
如何判断 k8s 的 OOMKilled 是因为 node 内存不足从而 kill pod,还是因为 pod 本身申请的内存超过了 limt 声明限制而被kill呢?
子问题:k8s pod OOM 原因分析
如何判断 k8s 的 OOMKilled 是因为 node 内存不足从而 kill pod,还是因为 pod 本身申请的内存超过了 limt
声明限制而被kill呢?
能不能直接通过 kubectl describe 看出来?
«从下面的 describe 子命令的输出信息,只能看出 OOMKilled,但是看不出是 pod 自身导致的 OOMKilled,还是外部原因导致的
OOMKilled»
─➤ kb describe -n xxxxx pod image-vector-api-server-prod-5fffcd4884-j9447
Name: image-vector-api-server-prod-5fffcd4884-j9447
Namespace: mediawise
Priority: 0
Service Account: default
Node: cn-hangzhou.xxxxx/xxxx
Start Time: Wed, 01 Nov 2023 17:25:54 +0800
Labels: app=image-vector-api
pod-template-hash=5fffcd4884
Annotations: kubernetes.io/psp: ack.privileged
Status: Running
IP: xxxxx
IPs:
IP: xxxxx
Controlled By: ReplicaSet/image-vector-api-server-prod-5fffcd4884
Containers:
image-vector-api:
Container ID: docker://78dc88a880d769d5cb4a553672d8a4b4a0b69b720fcbf9380096a77d279c5645
Image: registry-vpc.cn-xxxx.xxxx.com/xxx-cn/image-vector:master-xxxxxx
Image ID: docker-pullable://registry-vpc.cn-hangzhou.aliyuncs.com/xxx-cn/image-vector@sha256:058c43265845a975d7cc537911ddcc203fa26f608714fe8b388d5dfd1eb02d92
Port: 9205/TCP
Host Port: 0/TCP
Command:
python
api.py
State: Running
Started: Wed, 01 Nov 2023 18:35:49 +0800
Last State: Terminated
Reason: OOMKilled
Exit Code: 137
Started: Wed, 01 Nov 2023 18:25:34 +0800
Finished: Wed, 01 Nov 2023 18:35:47 +0800
Ready: True
Restart Count: 8
Limits:
cpu: 2
memory: 2000Mi
Requests:
cpu: 10m
memory: 1000Mi
Liveness: http-get http://:9205/ delay=60s timeout=1s period=30s #success=1 #failure=3
Readiness: http-get http://:9205/ delay=60s timeout=1s period=30s #success=1 #failure=3
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2kwj9 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-2kwj9:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional:
DownwardAPI: true
QoS Class: Burstable
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
«想在不引入外部工具的情况下(比如 prometheus),分析这种问题»
***
我去 kubernetes 那里提了这个问题: "https://discuss.kubernetes.io/t/how-can-we-tell-if-the-oomkil..." (https://link.segmentfault.com/?enc=rowgIdQgr9LuWqNIw1dV%2FA%3D%3D.8MxXXgtQPYPYlxg3TaT1vfJCUSBYULeveueD2FcgG7ytvIldhXAdlpgxn%2FCxV8x9Y8jpx%2FAg8oY6hlFWelne792%2BEdFUA%2BFOEhD0Di1V9MQI4hjxRBMXz8sW19WiO2pb0Nx%2BS6Dad4%2BjkAV6362bO9gSM1c6%2FnpzvLywz5qp%2B%2BSXlc4FztPp7ZeVZ6uiqZO2RO4dMBWzdrzUGj9Pwvy4ectiffbBMMbKTOE0%2F4lDcPcXmtSqLZmVenq06hzZDoo4kkxICgurKtIILQw9WW4oKwDsglRKF9yXLdMgvGM2eJod0JR7ES7oiQ1jJlev5X5BaqDg5cSrIyhoMuBwPAAfFg%3D%3D)
爱打瞌睡的三角龙
有谁知道idea这个顶部栏如何去掉?
点击菜单栏 View -> Appearance -> Navigation Bar取消勾选试试
爱打瞌睡的三角龙
[ts] 排他联合类型问题?
// 目前需要这样的结构
interface IChildLine {
isLine: boolean
points: number[]
}
interface IChildCircle {
isCircle: boolean
points: number[]
}
interface ITab{
children:(IChildCircle | IChildLine)[]
}
// 也就是说 ITab 的 children 要么是 isCircle 要么是 isLine ,在一个对象里不能同时存在
我感觉有优化空间,有大佬知道怎么优化吗?
爱打瞌睡的三角龙
小程序预览执行的错误,在微信工具上没问题?
小程序request合法域名添加了吗?
爱打瞌睡的三角龙
js要怎么实现往file对象末尾添加几个字符?
// 假设 file 是一个 File 对象
const file = ...; // 文件对象
const appendString = '你要添加的内容';
// 把文件转成 Blob 对象
const blob = new Blob([file, appendString], { type: file.type });
// 换回 File 对象
const newFile = new File([blob], file.name, { type: file.type });
爱打瞌睡的三角龙
基于Electron IM消息列表滚动优化方案?
两千条都太多了。虚拟列表,展示一屏幕+上下半屏幕。
左侧会话列表用定高列表,右侧消息列表用不定高列表。
不定高列表,可以把图片的宽高做持久化,体验会更好
***
可以看一下虚拟列表就是标准的大数据处理方案。十万条都没问题(当然真实的消息列表 dom 比这个会更复杂,但是真实 dom 也不会多太多)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241121/b19b6edab449cae47b27ea1da0dc503b.png)
***
"https://github.com/react-component/virtual-list" (https://link.segmentfault.com/?enc=jFwsoj%2B1esjpdae8jEPSmQ%3D%3D.gaUT2NdJ8KokHavDqkClcKUbnVMw5QuV9Agrp56WJz2K2R7mNi22hYm2KzySH%2BHu)
***
我之前写过的一些 im 相关的前端问题,可以关注一下 "https://segmentfault.com/q/1010000043560447" (https://segmentfault.com/q/1010000043560447) ,
如果有我没提到的可以再问我。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241121/0e1f28dca0fa442e4e744ce96ee78b5c.png)
爱打瞌睡的三角龙
element-plus,请问如何对一行el-form-item内多个el-input输入框的校验?
我只写一个主天线的示例,经过验证可以,你就续写下去就可以:
const RtkForm = reactive({
mainTx: "",
x: "",
y: "",
z: "",
//...
})
function isIntegerOrDecimal(str) {
let num = parseFloat(str);
return Number.isInteger(num) || Number.isFinite(num);
}
const checkNumber = (rule, value, callback) => {
if (!RtkForm.x || !isIntegerOrDecimal(RtkForm.x)) {
callback(new Error('第一个框请输入整数或小数'));
} else if (!RtkForm.y || !isIntegerOrDecimal(RtkForm.x)) {
callback(new Error('第二个框请输入整数或小数'));
} else if (!RtkForm.z || !isIntegerOrDecimal(RtkForm.z)) {
callback(new Error('第三个框请输入整数或小数'));
} else {
callback();
}
}
更新:
我发现这样写更简单粗暴,只不过没提示了
(RtkForm.x = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.x" />
(RtkForm.y = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.y" />
(RtkForm.z = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.z" />
爱打瞌睡的三角龙
请问 chrome devtool 如何指定 Mozilla 或是android版本测试?
想要在电脑 chrome 以指定 Mozilla 来测试指定网页
目前知道对方的 agent 数据如下
Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; JDN-W09 Build/HuaweiMediaPad) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/6.0 Mobile Safari/537.36
想要在 devtool 模式改成 "Mozilla/5.0" 或是 "Chrome/37" 环境来测试兼容的情况。
爱打瞌睡的三角龙
请问如何自定义alert UI,或是有外挂能支持 (能兼容IE11)?
请问如何自定义alert UI,或是有外挂能支持阻断程序运行效果 (能兼容IE11)
目前用过几个套件,有无法兼容IE11,有的无法实现alert时阻断程序运行,按确认后,其他JS才能继续运行效果
如,用alert用户可以看到提示字,知道自己完成送出
alert('资料确认完成');
windows.reload()
用其他套件会一闪而过,直接reload
爱打瞌睡的三角龙
vue 下载本地模板,路径获取不到?
a.href = location.origin + '/static/fileTemplate.xlsx';
这样部署到服务器也可以下载文件
这样试试
爱打瞌睡的三角龙
vue3 reactive() 的局限性:对解构操作不友好,ref似乎也有这个问题?
"https://cn.vuejs.org/guide/essentials/reactivity-fundamentals..." (https://link.segmentfault.com/?enc=e%2FuncrWeAl7tU%2FmwWwPqpg%3D%3D.7Qae9c%2BSkAYB6gEPlsM6nYV%2F6Q2Oiu6V%2BPeDlhcTTmwB0DyBICxddOG9zm5BqLYU4Bq19fwEz7rD3MoTySG60JQr8HJQ7ZCZbovoNJbRZJXjgzmnXIwrn7LthTi157YM)
"https://play.vuejs.org/#eNp9UcFuwjAM/ZUoF4qoShE3VJC2iQM7bNO2Y..." (https://link.segmentfault.com/?enc=5%2Fu%2Ff62ruoKywQXF1yBX%2FA%3D%3D.Hp%2BiD3d4dy%2FvLQFsEjJkJltwEyBVlp6nC24d9zkWWsdcavuBNK%2BvwMuJ1%2B342yY%2BxoQdvUBktqGeV7lqfaeHXkZqntIPYkhqLOyXxEvBOh9pfuyFGfuiOMVRUQI7DiTeOBoMNaeKtCxist4QEuJ2IxcaIjBDzZe9t21g3bT3i5Zsx9QEZE6KSKRjRh8LwHCgvnlvbOf%2FOFYSJ4QhJ5MChWu%2F3JvHAmKiQOQWFZFVs83HwApPm1jEbV%2B%2BzAwx1n%2F4JrF1Hs4PrNLbC9RHAmz7BZvS%2Bwj4PURXybh4CDFEe2moiCMMyuAZVIh4QsDQ2UJ%2FyAVyVLAzy2EV3InRAQBVmmiA6MlWVg1CkeGzbUJtvYLL%2FRnCQ9ABuc4C%2FhfiS6Jzv9HsbM9mO1k25L0iuSdWDpnz7XEbvKZvUM5mdn250a4ahWDk6USzUNVZxWIA5foMTu3o0kOir44GMqH%2B1EDAacKrYy%2Ftp5G2a50aHsPc9MvaBTwkm2ujPg7ftngBBMyA2O2d3acqS%2Fjvk3UA9LrcJsAUilXGbzloevmyekLKDKWXqC%2B8QfJmehKyzbJeguK1jFlJ8JfuQePq4t%2BXa%2BnlUIFwJrHfMLEFn9tPm6Wgq8tR0w4HASpuZ5IpmgwyFUV%2B)
如代码所示,解构丢失响应性连接似乎并不只是reactive的“局限性”
爱打瞌睡的三角龙
pytorch语法问题 loss.backword() 缺少入参?
在 forward 的每一步里,比如加法、乘法、Relu、等等,如何做 backward 就已经记录到了结果的 tensor 里。所以可以在最终结果
tensor 里直接调用 backward 。
爱打瞌睡的三角龙
前端H5项目如何实现不重新打包但最大化限度的更新?
比如vue项目,如何能在不重新打包的情况下最大限度的由接口控制页面呢?我目前能想到的就是条件渲染、列表循环、背景图这些是可以根据请求数据去按需显示的,还有其他的方式吗?
爱打瞌睡的三角龙
切换导航会刷新url和页面 导致猴油脚本失效 求助怎么解决这个问题?
一个页面有两个导航,切换导航会刷新url和页面 导致猴油脚本失效 求助怎么解决这个问题?
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/682d660bfe1ca1e754e90e636a23fb61.png
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/e0b1970400eda19e6c592809ae228ea9.png
(function () {
'use strict';
function main() {
// 父元素
const parent = document.querySelector('#gar-sub-app-provider');
const search = parent.querySelector('button.ant-btn.ant-btn-primary');
search.addEventListener('click', function () {
let timerId;
let count = 0;
timerId = setInterval(() => {
console.log('打印测试')
if (count < 20) {
clearInterval(timerId);
}
count++;
}, 100)
});
}
window.onload = function () {
main();
};
})();
每次点击查询重启计时器,我试过 在不切换导航的时候会正常运行,但是页面操作完成后会强制性切换到打款记录的页面,我再次点击发起打款 返回后 点查询
定时器就失效了 为什么?
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/cb6e2526bfd6b108c1352dea466e68d8.png
我试过 这样的载入方法也不行
document.addEventListener('DOMContentLoaded', function() {
main();
});
爱打瞌睡的三角龙
k8s 如何使用 ClusterIP + ingress 从集群外部访问内部的 mysql?
我搭建了一个 minikube 环境
pod 和 service、ingress 的声明如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/mysql-data" # Change this path to your desired host path
--- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
--- apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql8
spec:
replicas: 1
selector:
matchLabels:
app: mysql8
template:
metadata:
labels:
app: mysql8
spec:
containers:
- name: mysql8
image: mysql:8.0.34
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
- name: custom-config
mountPath: /etc/mysql/conf.d
resources:
limits:
memory: "512Mi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "250m"
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
- name: custom-config
configMap:
name: mysql-custom-config # Create a ConfigMap with your custom configuration
--- apiVersion: v1
kind: Service
metadata:
name: mysql8-service
spec:
selector:
app: mysql8
ports:
- protocol: TCP
port: 3306
targetPort: 3306
type: ClusterIP
--- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mysql8-ingress
spec:
rules:
- host: mysql.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: mysql8-service
port:
number: 3306
然后应用他们
minikube kubectl -- apply -f application/stateful/mysql.yaml
查看 pod 状态正常
─➤ minikube kubectl get pods 130 ↵
NAME READY STATUS RESTARTS AGE
mysql8-5db94fb5d5-22nhc 1/1 Running 2 (3d16h ago) 53d
查看 services 状态正常
╰─➤ minikube kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 53d
mysql8-service ClusterIP 10.110.118.91 3306/TCP 53d
查看 ingress 状态正常
─➤ minikube kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
mysql8-ingress mysql.example.com 80 33m
修改本地的 /etc/hosts
╰─➤ cat /etc/hosts 1 ↵
127.0.0.1 localhost
127.0.1.1 vobiler740
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.49.2 mysql.example.com
«我的 minikube 的 ip 就是 192.168.49.2╭─pon@T4GPU ~/code/me/k8s-console ‹master*›
╰─➤ minikube ip
192.168.49.2
»
然后从宿主机访问, 但是连接失败
╰─➤ mycli -uroot -p123456 -hmysql.example.com -P3306
(2003, "Can't connect to MySQL server on 'mysql.example.com' ([Errno 111] Connection refused)")
然后我把 ClusterIP 改成 NodePort 却可以
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/mysql-data" # Change this path to your desired host path
--- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
--- apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql8
spec:
replicas: 1
selector:
matchLabels:
app: mysql8
template:
metadata:
labels:
app: mysql8
spec:
containers:
- name: mysql8
image: mysql:8.0.34
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
- name: custom-config
mountPath: /etc/mysql/conf.d
resources:
limits:
memory: "512Mi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "250m"
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
- name: custom-config
configMap:
name: mysql-custom-config # Create a ConfigMap with your custom configuration
--- apiVersion: v1
kind: Service
metadata:
name: mysql8-service
spec:
selector:
app: mysql8
ports:
- protocol: TCP
port: 3306
targetPort: 3306
nodePort: 30001
type: NodePort
--- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mysql8-ingress
spec:
rules:
- host: mysql.example.com # 设置你想要的域名
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: mysql8-service # 这里填写你的 Service 名称
port:
number: 3306 # 这里填写 Service 的端口号
然后应用
minikube kubectl -- apply -f application/stateful/mysql.yaml
再次从宿主机连接 mysql, 就成功了
─➤ mycli -uroot -p123456 -hmysql.example.com -P30001 1 ↵
MySQL
mycli 1.27.0
Home: http://mycli.net
Bug tracker: https://github.com/dbcli/mycli/issues
Thanks to the contributor - chainkite
MySQL root@mysql.example.com:(none)>
所以为什么呢?为什么 ClusterIP 不行,但是 NodePort 却可以呢?
爱打瞌睡的三角龙
关于 JVM Class被回收卸载的问题?
问题的背景是我看到了这篇文章:
"https://zhuanlan.zhihu.com/p/146410261" (https://link.segmentfault.com/?enc=RyvEA0WIa1k1OWgHZ3vA8g%3D%3D.eUjeTVjmIonZiPCirsBzotjfFDqcsUeqt96utNqqz%2BWEMbfeFDn1Zq%2BD9dE4wyfW)
提到
强引用链: thread -> threadLocalMap -> counter -> MyCounter.class -> WebappClassLocader ,导致WebappClassLoader泄漏。
对这个有疑问。
Class类型被卸载的条件
"图片" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241106/b686f6a0b00cfb3e92c42c2705049525.png)
疑问点是
其中第二点: 加载该类的类加载被回收,是指 类加载器对象被gc。
假设MyCounter.class 由 WebAppClassLoader加载,那么 通过MyCounter.class.getClassLoader()
就可以得到WebAppClassLoader, 而WebAppClalssLoader 被gc的条件必然是没有任何人引用她,
所以 如何做到MyCounter.class 不会引用WebAppClassLoader? 否则是不是 就会出现
WebAppClassLoader一直被MyCounter.class所引用呢?
如果一直被引用的话那么WebAppClassLoader对象就不会被gc,那么MyCounter.class对象自然也不会被gc了。
感觉是鸡生蛋蛋生鸡的问题。
如果说 MyCounter.class 对 WebAppClassLoader对象有强引用,
WebAppClassLoader对象又怎么可能会被回收呢。如果WebAppClassLoader对象不被gc,那么MyCOunter.class又怎么会被回收呢?
b
爱打瞌睡的三角龙
uniapp获取定位信息?
使用uniapp开发app的时候,如何获取设备的当前位置?
疑问一:是否需要ios和安卓端适配?如何适配?
疑问二:是否需要进行定位授权?如何授权?
爱打瞌睡的三角龙
不用采用ref,v-model怎么给Antdv Input赋值?
window.addEventListener("click", (e) => {
const input = e.target
if (input.className.indexOf('input') === -1) {
return
}
input.value = '赋值'
console.log(input)
})
不用采用ref,v-model
赋值之后,点击鼠标空白楚值就消失了。
测试:"https://codesandbox.io/p/sandbox/ji-ben-yong-fa-ant-design-vu..." (https://link.segmentfault.com/?enc=MQBU1jqTHWvTycUoKazODw%3D%3D.2xUG3dKxg7QF%2BAuXz3ruzOjs20Oj3VHoyoj4UJmqJSb1x4eF50p%2BRCnt2PAEexoc0zAKCFk2618sD8errCpsf1cTaqHthYxgyTTCV3ZcILxm4m%2B%2BpK6%2FwbvIxCjcLS9ficeDT358h2gQM1K8C5rdMrk9JKhV0RcPnLe1ENTjsF4%3D)
爱打瞌睡的三角龙
Next.js中fetch为什么总是发起两次请求?
一个简单的页面:
"app\fetch-demo\page.js"
'use client'
export default function FechDemo() {
const fetchPromise = fetch("https://mdn.github.io/learning-area/javascript/apis/fetching-data/can-store/products.json",);
console.log(fetchPromise);
return (
fetch test
)
}
浏览器控制台返回两次同样的结果:
"Snipaste_2023-12-13_13-54-30.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241101/e08755949e60264297a35679a55291ad.png)
为什么会这样?
爱打瞌睡的三角龙
解决PNG图片加载错误的方法?
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241022/d7d4699f4e3c3cc972b517e7f25cfdb2.png)
这个怎么解决?
把他们调换顺序也不对
爱打瞌睡的三角龙
python函数调用触发except后,如何立即中断当前循环,进入下一个循环?
一小段python代码:
for item in [n1,n2,n3]:
f1(args1)
f2(args2)
f3(args3)
三个函数的结构类似
def f1(args):
try:
doing something
except:
pass
我的需求:f1 ,f2,f3这三个函数,无论哪个函数在运行中触发了except,那么当前循环立即中断,进入下一个循环。
请问,如何达到这个需求?
爱打瞌睡的三角龙
js怎么根据一个视频的在线url生成一个视频预览图?
和img一样,直接"canvas.drawImage"绘制"HTMLVideoElement"就会取视频元素当前的一帧
爱打瞌睡的三角龙
解决Vue3+Vite小程序在iOS 17.1.1版本白屏问题?
问题背景
使用vue3+vite写了一个内置于一个app里面的小程序,打包上线后Android一切正常,ios打开后发现白屏,经排查后发现,iOS版本15.3.1能打开,17.1.1不能打开,17.1.2能打开但是加载不出来阿里巴巴矢量库引入的图标,但是他又没报错,目前个人觉得是ios版本兼容问题,但是又不太清楚,有高手看看?
尝试过使用@vitejs/plugin-legacy插件
爱打瞌睡的三角龙
REACT Umi根据后端返回二进制文件流,前端输出成XLSX文件?
REACT Umi根据后端返回二进制文件流,前端输出成XLSX文件,直接下载
一点下载直接报错了求大神求助!! Unexpected token 'P', "PK
const exportExcel = async () => {
exportExcelTemplate().then(res=>{
const blob = new Blob([res], {
type: 'application/vnd.ms-excel;charset=utf-8'
})
console.log(blod)
const fileName = '病害模板' + '.xls';
const link = document.createElement('a');
link.download = fileName
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click();
URL.revokeObjectURL(link.href);
document.body.removeChild(link);
message.success('模板下载成功')
})
我封装的请求
//下载导入模板
export async function exportExcelTemplate() {
return get(`/inspection/exportExcelTemplate`,{},{responseType: 'blob'});
}
爱打瞌睡的三角龙
无法下载网页urllib.error.HTTPError: HTTP Error 403: Forbidden?
被TLS指纹反爬虫了,可以用curl_cffi库爬
import random
from curl_cffi import requests
ua_list = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0',
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'
]
headers = {'User-Agent':random.choice(ua_list)}
url="https://cn.investing.com/indices/hnx-30-components"
resp = requests.get(url, headers=headers, impersonate="chrome110")
print(resp.status_code)
with open('temp.html', 'wb') as fw:
fw.write(resp.content)
如果页面数据是异步加载的,还是用selenium这类库爬吧
爱打瞌睡的三角龙
vue 无法获取到template中的dom元素?
我希望能够获取中 id为"is_load"的div元素
但是ref无法引用到 ,在onMounted函数中使用nextTick回调打印处理这个dom也是空的,等待渲染后也不行
有什么方法可以操作到dom
加载更多
{{ item.goodsName }}
import {onMounted, ref, nextTick} from 'vue';
const test=ref();
onMounted( () => {
console.log(test.value) //打印为空
});
document.getElementById("is_load") //也没有拿到这个元素
vue 无法获取到template中的dom元素?
爱打瞌睡的三角龙
证书无效问题?
"自签名证书" 和 "由受信的CA机构颁发的证书" 还是有区别的,它只能让你完成 https
的基本使用,它本身是不受信的,所以用户访问的时候"浏览器会"给"二次确认"提示让用户确认是否访问
你的 "https" 能访问就代表它已经生效了,但是你想让去掉浏览器上的"不安全"标识必须使用"受信的证书"才行
这种手动确认进入就行了
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/333a7c127f315b8ecf71d60e91bd567d.png)
爱打瞌睡的三角龙
post方法提交内容时,body体力没有key,为何还可以正常提交?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/a0c0cb5f14f016a968c267eb710ebc71.png)
***
看起来对HTTP协议理解的还不够深刻。HTTP是超文本传输协议,说白就是一种文本协议。
你说的"Content-type是application/x-www-form-urlencoded"是一种理论上的。但是后端可以完整的接收到整个请求(请求头和请求体)。
比如Python的Flask框架,可以使用 "request.data" 来接收请求Body原始内容 ,而不会去关系其具体的格式。
***
再延伸一点,假如对请求Body加密呢,Body就是一堆乱码。这该如何解析呢?
爱打瞌睡的三角龙
为什么echarts地图修改数据项的selected属性不起作用?
这种操作可以直接调 "echarts" 提供的 "dispatchAction" 来选中
"https://echarts.apache.org/zh/api.html#action.select" (https://link.segmentfault.com/?enc=BxWsYBbFV80LXE1AuOqzLQ%3D%3D.3vU1bSlg1ayLTq6l9fIYxih7%2FF%2BSNeWmX7buaPM0qdBtFl9THM87LE5BwU5MVXgSL4ACnhK8G%2FTyxyXQ6MCYmw%3D%3D)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/81a0b546b877a97a8923a06db870e34d.png)
改动了下你的demo,是可以的"最小实例" (https://link.segmentfault.com/?enc=AhtmxlmdjYt5cAffvDnv8A%3D%3D.rQ8IRaXiksdBrSfjhFwA44zAdg2%2BgNdlb87zy4FZMt8OUXl%2FM1C7bAcagJJCqEUcDg2TxW1UibeoOD6NO5RCVZe4pd%2BU0NzGHsAmUvoCQzwIWFRrGvSuWEJPJe%2B%2Bo0PuhjDCYDCAzKJse%2BEUnBUDxpWXGYB1m9kSHRUnDvnln1DXD9XxTOfiXMitmc5hUZknLqEHYDFhvbG%2BIn%2FKYAaMNGeL6DCnOe5ysCoMs0yBm3lZxLgNNHsTM59KMVitC%2BqTT8%2B9LXLqeNcBlEwxOHaEDc7yyr8YrR9h1JU6RBO12LJ3gSrDj5nisMM%2Bc%2BeV3FD%2F3fl2U%2FsFIuCPYPNAd23SUtxvBpEGjYCUSz2gGXpkTKjWgpfjQw8erokVhXWgKHmPyeNKZXEzXnMuHqzhSFXCEZIv%2BTWndHID3%2FyfGNKXbfH3CGrGE2AVlnl6RPfUsB78t8w8WRxqhiQ0JokivvWuW2afkGBIeoDSz1g1E0sv8IIRhuaAJHUaF8SH7ImiMTIlhSTN6CZw%2BUSOzBZztQcLqPpUM6srhBEhpBUvuOehJbuvI9XKjwjQmwoeWURVduJbTglGu6sTUpjFM6AFR55iTElvgU1GP%2BblWFX6B3F5w%2FCTOmtCjh9P2nb6IgpB%2FNJXoIs6iyVsknTncynP6NB1srPR5B4%2Fr2Uo9ITkJzEq79EfjCSHQiTrMxTcL5QQ5LDRcf983fdWyhVSCr5p82YfFY6TKfBVFWgyWE9CQvCBRwj8u30nNJi5%2B67%2B4NexzpGm4GOzg94UOoD6NT8QYKizj%2FAnVxKIOmSasobUaPuVLYm7mRiOsGIJKOzKYvzAuv3rLIm3hDyG1fjOlypEcQ%2BdY3AsuLSAUUzlkezXqPm6f5NTU88UksJVVpBqbPbTtdIXyr0gu17Qa%2BM5sFWZGNMA6AQ7iCfaqLiKwNW3GrdrLT89jiGOhwtAlrLW5NguNl2PqkAY98NnLjJK2%2B5KGMdZxWTlkytFRx2YcF9FzsEQzUYWNWk4Jh6aNDCBp6PXVbbAC7%2FxJyR2M76ijx40Vt7qMiKS4f7Bju3oMMCE9Cx95CoQ%2BIn6xN4zTU9MPH%2Fu95XQtOoqWa9mqcgL6sBdegzlit%2BAcQZEBYjASJCP5vd4bZzFYWvhATTyU1BAA9LHnoO4FH6cvSaKC0fERIy%2FIXOfvw%3D%3D)
爱打瞌睡的三角龙
js 中的 window 对象可以点出任意名称?
index.js 全部代码
console.log(window.num); // undefined
console.log(num); // Uncaught ReferenceError: num is not defined
为什么可以直接使用 window 对象点出不存在的属性 num? 执行原理是什么?
之前一直以为这两段代码都会报错 "not defined" ...
爱打瞌睡的三角龙
h5通过object引入对象导致window对象变化后 如何调用原window对象的print方法调用出打印界面?
在项目使用了window.print绑定在某个打印button以调用打印功能。但此时遇到了一种情况导致无法成功呼出打印界面:
页面中可能通过object标签插入了pdf的显示,此时再调用window.print无法呼出打印页面
调查了一下发现是因为通过object引入对象,导致window对象发生了改变
但尝试了半天找不回原来那个window对象,也无法唤出打印方法
所以通过object引入对象以后window对象发生了啥变化,如何呼出print方法呢?
object的使用如上,此时使用window.print无法唤出打印界面
爱打瞌睡的三角龙
js工具库需要index.d.ts 实现.?
写了一个js 工具库,但是 "index.d.ts" 这块无法得到满意的实现,需要帮助。具体看下方issues
"single-promises
issues" (https://link.segmentfault.com/?enc=kRL36Ss7TByGt1cheyXihA%3D%3D.rWvh8clTzxr8MGIWq4l5t8K2wf%2Fl10giHPVGGmuxhRAfqh9Bby%2B7Db1cDLilv7uYdCVWj%2FG%2B8SYlyBVrxOZm2w%3D%3D)
可在issues 里看到。