雾里
小网站有必要将图片放到阿里云OSS存储吗?
网站有涉及到图片的请求,买了阿里云服务,我想将图片放在云服务上的某个目录下,然后通过nginx代理请求图片资源,不知道这么做是否可行?
还是说需要将图片放在OSS上存储,但是OSS需要收费?
哪个方案更好一些?
雾里
PHP 如何无限极数组映射成文件夹?
好久没写 PHP 了,有点儿生疏,看看大概意思就行了:
function flatten($nodes, $prefix = '') {
$list = [];
foreach ($nodes as $key => $value) {
if (is_array($value)) {
$path = $prefix . $key;
$list[] = $path;
$list = array_merge($list, flatten($value, $path . '/'));
}
}
return $list;
}
flatten($config);
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/e9d2b9e326b3eb529334e444a5c4d0da.png)
***
用 RecursiveIteratorIterator 也行,但需要指定第二个参数
"RecursiveIteratorIterator::SELF_FIRST":
$list = [];
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($config), RecursiveIteratorIterator::SELF_FIRST
);
foreach ($iterator as $key => $value) {
if (is_array($value)) {
$path = '';
foreach (range(0, $iterator->getDepth()) as $depth) {
$path .= $iterator->getSubIterator($depth)->key() . '/';
}
$list[] = rtrim($path, '/');
}
}
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/2c20a879703319248cf72587bebc52bc.png)
雾里
微信小程序 使用getSystemInfo获取到了手机底部安全距离 怎么全局用呢 ?
"https://segmentfault.com/q/1010000044155673?utm_source=sf-similar-question" (https://segmentfault.com/q/1010000044155673?utm_source=sf-similar-question)
雾里
joi.example API是干什么用的?
这不写的很明白了么:
«Adds an example. Note that no validation is performed on the value.»
就是添加了一个示例值。
这里 "Joi.string().min(4)" 就是要求一个长度最少为 4 的字符串,""abcd"" 就是一个示例值。
注意它这里强调了,这个示例值本身并不会被校验,所以你要是强行填一个错的示例也能编译通过、不会抛异常,就还比如这里你给的示例值要是 ""abc""
也不会报错,但看的人就会懵逼了 —— 不是说好了长度最少为 4 么、怎么示例给了个 3?
***
你可能会觉得示例值写在注释里也行,为啥非得弄这么个函数出来。这个其实主要是为了配合 swagger
或者别的什么文档生成框架,最后生成出来的文档里会带着这个示例值。
雾里
三星商城 360°展示商品如何实现???
看源码是使用了 Three.js 来实现了
模型展示可以调用对应模型的 loader 来实现,鼠标拖动旋转的话用内置的 Controls 就行(猜测它用的是 OrbitControls)
示例的话可以参考下 Three.js 的示例,搜个 loader 相关的或者 controls 的示例看下源码就可以实现
雾里
这个el-date-picker的时分秒怎么显示时间段呢?类似8:00、9:00、10:00这样呢?
format="YYYY/MM/DD HH:mm"
雾里
大家做多级代理项目的时候怎么设计sql表?
1.用户表
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);
2.代理表
CREATE TABLE proxies (
proxy_id INT PRIMARY KEY,
ip_address VARCHAR(50) NOT NULL,
port INT NOT NULL,
username VARCHAR(50),
password VARCHAR(50),
status ENUM('available', 'unavailable', 'expired') NOT NULL
);
3.代理关系表
CREATE TABLE proxy_users (
user_id INT,
proxy_id INT,
PRIMARY KEY (user_id, proxy_id),
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (proxy_id) REFERENCES proxies(proxy_id)
);
4.流量表
CREATE TABLE traffic (
traffic_id INT PRIMARY KEY,
user_id INT,
proxy_id INT,
traffic_type ENUM('http', 'https', 'ftp', 'telnet') NOT NULL,
traffic_size INT NOT NULL,
traffic_time TIMESTAMP NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (proxy_id) REFERENCES proxies(proxy_id)
);
5.日志表
CREATE TABLE access_logs (
log_id INT PRIMARY KEY,
user_id INT,
proxy_id INT,
access_time TIMESTAMP NOT NULL,
access_url VARCHAR(255) NOT NULL,
access_result ENUM('success', 'failure') NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (proxy_id) REFERENCES proxies(proxy_id)
);
最后要根据你项目的具体需求进行调整
雾里
关于css的mask属性,如何做一个带边框的镂空效果?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241211/70718d308bf810a27d2161bd51a523bf.png)
如上图,是利用了镂空效果显示下面的图片,但是我想要的镂空效果是沿着不规则图形有一个边框效果,类似如下,五角星最外一层有一个红色的border。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241211/32e136326a1543ee7611b79109addacd.png)
代码示例如下:
"https://jsbin.com/fazufer/edit?html" (https://link.segmentfault.com/?enc=yFdRHMpmxwf0wo%2F997OM8w%3D%3D.kvuPRsCPeXxRF%2BWuxYNSg3KXgLqMQXyXjWjcKFflX9tpGsjCrn8FaXIOcmtEzzaL),css,output
请问有实现过类似效果的吗?
带有红色边框的五角星图片:
"五角星.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241211/5498384e47fb81b5ef051b4503111ec2.png)
雾里
php 上传csv文件导入sql,及导出csv文件并下载的问题?
代码懒得写了,大概说一下流程吧。
1. 从表单获取上传文件
2. 将文件存储到临时目录并且获取文件地址
3. 通过fopen打开成resource类型,通过fgetcsv从resource中获取单行CSV数据
4. 将读取的CSV数据数组,按照csv文件列读取内容;例如 "[id,名称,性别] => $csv[0];$csv[1];$csv[2];"。
5. 组装自己插入数据库的SQL语句;例如"INSERT INTO data (id, name, sex) VALUES ("$CSV[0]", $csv[1], $CSV[2])";
6. 执行SQL就可以插入了。
下载CSV文件:
1. 在控制器获取要下载数据的条件,生成文件名。
2. 添加响应头:header("Content-Disposition:attachment; filename=$filename");
3. 通过SQL查询总数与分页大小,计算总页大小进行分页条件查询(最好使用自增主键作为条件),防止一次性读爆数据库。
4. 循环读取分页数据,一边读数据,一边写数据。写数据用"echo implode(',', [$data['id'], $data['name'], $data['sex']])"
你可以看一下别人写的代码:
"PHP对CSV文件的读取、写入、下载操作" (https://link.segmentfault.com/?enc=EzQYIfZo3YU1TBbuP6P1gA%3D%3D.ytS9Le0CpStqwRRholDs1FPtep4HKd3uzlJfjuA60AJ6si9fCrUm8CKlrXmlZemounj7qpECGvQHxQefFgmdCw%3D%3D)
雾里
有个需求要求后端返回html,是否可以绑定事件?
现在有个需求要求我用nestjs写一个接口,处理本地一个json文件处理成一个html页面返回给前端
,我想问比如返回的格式是这样,"text":'.helloword{width:100px;} 你好'
这样返回去的样式和点击事件是否能生效。如果不行该如何做?大佬们
雾里
jdbc连接oracle如何指定名称空间?
在 JDBC 连接 Oracle 数据库时,你可以通过在 JDBC URL
中指定连接属性来指定名称空间(Schema)。Oracle中的名称空间通常对应于数据库中的不同用户或模式。以下是如何在 JDBC URL
中指定名称空间的一般方法:
jdbc:oracle:thin:@::?user=&password=¤tSchema=
在上面的URL中:
* "":Oracle数据库主机名或IP地址。
* "":Oracle数据库监听端口。
* "":Oracle数据库的SID(System Identifier)。
* "":数据库用户名。
* "":数据库用户的密码。
* "":要连接到的名称空间(Schema)的名称。
通过在URL中添加 "currentSchema"
参数,你可以指定要连接到的名称空间。这将影响在执行SQL查询时默认使用的名称空间。请确保替换上述URL中的占位符
""、""、""、"" 和 "" 为实际的值。
以下是一个示例 JDBC URL,其中指定了名称空间(Schema)为 "HR":
jdbc:oracle:thin:@localhost:1521:ORCL?user=hr&password=hr¤tSchema=HR
通过这种方式,你可以连接到指定的名称空间,并在查询时默认使用该名称空间的对象。请注意,具体的URL格式可能会因Oracle版本和配置而异,因此请根据你的Oracle数据库配置进行相应的调整。
雾里
antdv 中a-carousel组件如何使用v-for渲染列表?
vue3中想通过后端获取的数组数据使用antdv中的a-carousel组件实现走马灯效果,但如何实现每个页面只显示6条记录?同时每条记录根据id加个跳转链接
数组格式:[{id:"1",sgzydd:"aaa",sgzynr:"bbb";fxdj:"三级"}]
如下代码是自己写的,里面的pageNo是想进行分页(数据长度/6),dtsg_arr是返回的数据
{{ item1.id }} {{ item1.sgzydd }} {{ item1.sgzynr }} {{ item1.fxdj }}
雾里
Docker同样的镜像,为什么容器占有内存不一样?
内存占用会随着使用的场景增加的,这不是docker问题。
你不信你在线上重新启动一个gitlab镜像(确保不要提交任何代码仓库)和你本地的做对比。
雾里
uniapp/vue中,如何按照要求改动代码?
本质是css问题,所以只改了样式布局部分
"https://jsrun.net/e4xKp" (https://link.segmentfault.com/?enc=kB8j%2FWGd3cp3nUZS4zoTsA%3D%3D.WuXe8shTGvSNvbmwgWA%2BvKeRjJ8q9%2BNB4eI7lZyyRzQ%3D)
雾里
全局的原生webSocket写在什么位置?
1.umi项目中的model是全局的,如果我写在model里:socket.ts,取得的数据用useState保存,那所有用到这个model的组件都会随着useState的更新而更新,不管有没有用到变化的数据。
2.如果我把socket写在ts文件中,import它,要怎么在其它组件中拿到数据。
上面的两点都可以通过事件总线,在收到数据时emit出来,但是看起来这个操作有点多余。
雾里
gitlab,当前账号有合并权限,但是没有push权限,那么当前账号也需要给自己建立合并请求才能提交吗?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241115/48e840e85a531f3b1f205901619f724e.png)
如图,我的账号角色是 maintainers
该账号角色允许合并,但不允许push
我在本地将分支进行合并了之后,push是不成功的
所以该账号需要合并也必须在线上发起合并请求,再由当前账号进行允许合并吗??
雾里
Java 中如何读取 Excel 文件公式计算后的值?
Java 中如何读取 Excel 文件公式计算后的值
有一个excel文件,里面包含很多公式和公式计算后的值。我想通过java读取某个公式值,应该怎么实现?
我用poi尝试过了,但对于某些公式获取的结果不是很理想,请问还有其他方案吗?
雾里
请问 Nuxt3 服务端首次渲染返回时间过长 这是为什么呢?
首先要排除服务器本身的问题:
1. 上传一个静态 HTML,测试打开时间
2. 创建一个什么也没有的空白 nuxt 项目,测试打开时间
如果上面的测试没问题,就要检查 SSR 阶段网络请求的耗时。即使没有别的手段,用 JS 记录开始时间结束时间总是可以的,然后就输出到页面中不就能看到了。
最后,如果是首页这种用户身份无关的页面,可以考虑预渲染。
雾里
Java 读取 CSV 文件并将其写入指定 Excel 工作表?
问题可以拆解成两步,读取CSV,写入Excel:
//参考链接:https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java/docs/ManageFileOperations/ImportandExportCSVFile
public void ImportCSV(){
Workbook csvWb = new Workbook();
//打开需要导入的CSV文件
csvWb.open("resources/ImportCsv.csv");
Workbook wb = new Workbook();
//获取CSV数据的区域
IRange csvRange = csvWb.getWorksheets().get(0).getUsedRange();
//获取目标工作表的区域
IRange targetRange = wb.getWorksheets().get(0).getRange("A1:D10");
//把CSV数据复制到目标工作表区域中
csvRange.copy(targetRange);
wb.save("output/importCsv.xlsx");
}
雾里
如何使用 Java 代码实现设置 Excel 单元格的格式?
最近刚好有做类似的项目:
Excel中的,单元格格式,都对应的有一个数字格式字符串。
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/4955c766d8c4e5931e6a78a83a0a475a.png)
公司用了一个叫"GcExcel" (https://link.segmentfault.com/?enc=gkzHQ2zcDFqBWFxcOAErWA%3D%3D.p9xQt54vxwPgqQMQRyorFeWv1nM9iMIyceidoCN8P%2BpRREQZBUxJVKbDK4i%2B2wEuizSMaGiqYAVpSyW2s3hfq7GtsuMzDd6AvofoxqawryA%3D)
Java平台的Excel组件,通过使用 GcExcel,可以给对应的单元格设置数字格式字符串。
public void NumberFormat(){
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("A:H").setColumnWidth(17);
worksheet.getRange("A1").setValue(0.52);
worksheet.getRange("A1").setNumberFormat("0%");
worksheet.getRange("C1").setValue(12345000);
worksheet.getRange("C1").setNumberFormat("0.00E+00");
workbook.save("output/NumberFormats.xlsx");
}
代码不用写很多,可读性也比较好。
雾里
项目中使用国际化插件,设置语言对象时只能对已知内容设置,如何实现对动态获取内容的语言设置?
中英切换时,在语言包对象设置了表头(已知字段),所以表头可以实现中英切换。但是表格内容是未知的,那语言包对象如何设置才能够将表格内容也能够同步切换。
语言包配置对象:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/95f58667763dd381264a3b11b72c2835.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/26967faf4e5f34a2939e12cabaf7b943.png)
表头中英切换方法:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/a29497a0531de5eb319f616893410474.png)
效果:
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/5c2b76eeee3de1247fdf78bfd348f4dc.png)
雾里
为何react hook 无法在组件外使用?
很简单,视情况而定:
* 如果你的自定义 hook 中包含 react 相关api,在“组件外的js中”则不能使用,即 hook 只能在react@^16.8.0 语境中使用;
* 否则,自定义 hook 也是一个函数,可以当作一个正常的函数调用
雾里
如何在AMH上以www用户运行PHP脚本?
AMH 怎么指定www用户来运行php脚本。我现在运行脚本出错了。
amh amcrontab run_php lnmp01 php-8.3 /home/wwwroot/lnmp01/domain/test.com/web/app/bin/legacy -C cron
提示root用户不行。
[amcrontab-2.5 run_php]
=============================================================
[OK] amcrontab-2.5 is already installed.
[ERROR] Unable to run as root (run this command as a regular user)
=============================================================
[Linux] AMH 7.1
https://amh.sh
[amcrontab run_php]
=============================================================
=============================================================
[Linux] AMH 7.1
https://amh.sh
[amcrontab-2.5 run_php]
=============================================================
[OK] amcrontab-2.5 is already installed.
[ERROR] Unable to run as root (run this command as a regular user)
搞不了。
雾里
debian12 怎么升级 adb 版本?
debian 怎么升级 adb 版本?
今天安装了一个最新的 debian12
_,met$$$$$gg. pon@wechat-console
,g$$$$$$$$$$$$$$$P. ------------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 12 (bookworm) x86_64
,$$P' `$$$. Host: MS-7917 1.0
',$$P ,ggs. `$$b: Kernel: 6.1.0-17-amd64
`d$$' ,$P"' . $$$ Uptime: 17 hours, 21 mins
$$P d$' , $$P Packages: 2414 (dpkg)
$$: $$. - ,d$$' Shell: zsh 5.9
$$; Y$b._ _,d$P' Terminal: node
Y$$. `.`"Y$$$$P"' CPU: Intel i7-4790K (8) @ 4.400GHz
`$$b "-.__ GPU: NVIDIA GeForce GTX 970
`Y$$ Memory: 2235MiB / 15942MiB
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`"""
然后安装 adb
sudo apt-get install android-tools-adb
但是上面的 adb 版本好古老啊
╰─➤ adb --version 130 ↵
Android Debug Bridge version 1.0.41
Version 29.0.6-debian
Installed as /usr/lib/android-sdk/platform-tools/adb
这么老的 "adb" 不支持 "adb pair" 命令
同样是 brew 在 mac 上安装 adb
brew install android-platform-tools
版本就很新
╰─➤ adb --version 130 ↵
Android Debug Bridge version 1.0.41
Version 34.0.5-10900879
Installed as /opt/homebrew/bin/adb
Running on Darwin 23.2.0 (arm64)
***
╰─➤ sudo apt update && sudo apt upgrade -y
[sudo] pon 的密码:
命中:1 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm InRelease
获取:2 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates InRelease [52.1 kB]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports InRelease [56.5 kB]
获取:4 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main amd64 Packages.diff/Index [63.3 kB]
获取:5 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main Translation-en.diff/Index [51.0 kB]
获取:6 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main amd64 Packages T-2024-01-17-2005.03-F-2024-01-17-1406.13.pdiff [21.4 kB]
获取:6 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main amd64 Packages T-2024-01-17-2005.03-F-2024-01-17-1406.13.pdiff [21.4 kB]
获取:7 https://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]
获取:8 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main Translation-en T-2024-01-17-2005.03-F-2024-01-17-1406.13.pdiff [18.6 kB]
获取:8 https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-backports/main Translation-en T-2024-01-17-2005.03-F-2024-01-17-1406.13.pdiff [18.6 kB]
获取:9 https://download.docker.com/linux/debian bookworm InRelease [43.3 kB]
获取:10 https://security.debian.org/debian-security bookworm-security/main amd64 Packages [134 kB]
已下载 488 kB,耗时 4秒 (122 kB/s)
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
所有软件包均为最新。
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
正在计算更新... 完成
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
已经升级过了,还是老的
╰─➤ adb --version
Android Debug Bridge version 1.0.41
Version 29.0.6-debian
Installed as /usr/lib/android-sdk/platform-tools/adb
我需要 adb > 30.0.x
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/818f8a7128fd56b5c93a2eb2e66b2e59.png)
***
看来不能使用 apt 安装了,需要自己外部安装,写谁相关经验、相关资料可以参考
雾里
element 中 el-carousel 与 el-image 的冲突,如何解决?
"element-ui": "^2.15.10",
"vue": "^2.6.11",
"el-image" 使用 "lazy" 会无法正常显示, 在 "el-carousel"外面就是正常的。
这是什么原因造成的?如何解决呢?
雾里
找一个音频文件转换的网站?
有几个.mflac格式的文件, 需要转成flac, 有没有什么网站能支持转换, 免费, 在线转即可. 谢谢
在百度上找过一堆破网站, 不是要下载app就是要开会员..
雾里
前端调取接口下载 excel,获取 blob 触发 a 链接 下载过慢,如何解决?
前端调取接口获取 "blob" 触发 "a 链接" 下载 "excel"过慢
项目中,因为"excel"文件过大
导致后端调取接口时间过长,用户长时间等待后,才触发 "a 链接"的下载弹窗
有没有什么方案能先触发弹窗,再在后台运行下载?
大致代码如下
axios({
method,
url,
responseType: 'blob',
})
.then(res => {
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel;charset=utf-8'
}) // 创建一个类文件对象:Blob对象表示一个不可变的、原始数据的类文件对象
const link = document.createElement('a') // 创建一个a标签
link.download = 'xxx' // 设置a标签的下载属性
link.style.display = 'none' // 将a标签设置为隐藏
link.href = URL.createObjectURL(blob) // 把之前处理好的地址赋给a标签的href
document.body.appendChild(link) // 将a标签添加到body中
link.click() // 执行a标签的点击方法
URL.revokeObjectURL(link.href) // 下载完成释放URL 对象
document.body.removeChild(link) // 移除a标签
})
雾里
LeetCode 43 题字符串相乘数组初始化为什么失败呢?
我的问题,光顾着改上面ans的空间分配了,忘记改下面res的空间分配了,而且我的代码部分,
for(i = len1 - 1;i >= 0;i--)
A[i] = num1[i] - '0';
for(i = len2 - 1;i >= 0;i--)
B[i] = num2[i] - '0';
这里也有问题,应该再定义一个int m = 0,n = 0;改为
for(i = len1 - 1;i >= 0;i--)
A[m++] = num1[i] - '0';
for(i = len2 - 1;i >= 0;i--)
B[n++] = num2[i] - '0';
一下为修改后的代码:
char* multiply(char* num1, char* num2) {
int len = 0;
int len1 = 0;
int len2 = 0;
int temp = 0,t = 0;
int i = 0,j = 0,m = 0,n = 0;
len1 = strlen(num1);
len2 = strlen(num2);
char* shortAns = (char*)malloc(sizeof(char) * 2);
shortAns[0] = '0';
shortAns[1] = '\0';
if((len1 == 1 && num1[0] == '0') || (len2 == 1 &&num2[0] == '0'))
return shortAns;
int* A = (int*)malloc(sizeof(int) * len1);
int* B = (int*)malloc(sizeof(int) * len2);
for(i = len1 - 1;i >= 0;i--){
A[m++] = num1[i] - '0';
}
for(i = len2 - 1;i >= 0;i--)
B[n++] = num2[i] - '0';
int* ans = (int*)malloc((len1 + len2 +1)*sizeof(int));
memset(ans,0,sizeof(int) * (len1 + len2 + 1));
//printf("a[1] = %d",ans[1]);
for(i = 0;i 0 && ans[k] == 0){//去掉最高位的0
k--;
}
char* res = (char*)malloc(sizeof(char) * (len1 + len2 + 1));
while(k >= 0){
res[len++] = ans[k--] + '0';
}
res[len] = '\0';
return res;
}
雾里
这种地图显示是怎么做出来的?
一般的地图库都会提供对应的功能
* "信息窗体和右键菜单-覆盖物-教程-地图 JS API 1.4|高德地图API" (https://link.segmentfault.com/?enc=c27RIwjLJfZIqy5VzcRgDQ%3D%3D.GYr4KpPbDvvSluYFfCmbW3xifyKoif2UdkSusxSV8IOugvRv7e6ka9d3zN%2FOn1rPxxyXx7sBfhZ%2FNvWMvPfJc1bYBl23D0Gj3%2BWh0l7K7pU%3D)
雾里
virtual box Kernel driver not installed ?
$ sudo apt install --reinstall virtualbox-dkms && sudo apt install libelf-dev
$ sudo /sbin/vboxconfig
╭─pon@amd5700g ~/Downloads
╰─➤ sudo apt install --reinstall virtualbox-dkms && sudo apt install libelf-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
libsdl-ttf2.0-0 linux-image-5.15.0-58-generic linux-image-5.19.0-50-generic linux-image-6.2.0-39-generic linux-modules-5.15.0-58-generic linux-modules-5.19.0-50-generic linux-modules-6.2.0-39-generic
linux-modules-extra-5.15.0-58-generic linux-modules-extra-5.19.0-50-generic linux-modules-extra-6.2.0-39-generic
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
cpp-12 dctrl-tools dkms gcc-12 libasan8 libgcc-12-dev libgsoap-2.8.117 liblzf1 libtsan2 virtualbox virtualbox-qt
建议安装:
gcc-12-locales cpp-12-doc debtags menu gcc-12-multilib gcc-12-doc vde2 virtualbox-guest-additions-iso
下列软件包将被【卸载】:
virtualbox-7.0
下列【新】软件包将被安装:
cpp-12 dctrl-tools dkms gcc-12 libasan8 libgcc-12-dev libgsoap-2.8.117 liblzf1 libtsan2 virtualbox virtualbox-dkms virtualbox-qt
升级了 0 个软件包,新安装了 12 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
需要下载 86.6 MB 的归档。
解压缩后会消耗 97.5 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 cpp-12 amd64 12.3.0-1ubuntu1~22.04 [10.8 MB]
获取:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libasan8 amd64 12.3.0-1ubuntu1~22.04 [2,442 kB]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libtsan2 amd64 12.3.0-1ubuntu1~22.04 [2,477 kB]
获取:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 libgcc-12-dev amd64 12.3.0-1ubuntu1~22.04 [2,618 kB]
获取:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 gcc-12 amd64 12.3.0-1ubuntu1~22.04 [21.7 MB]
获取:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 dctrl-tools amd64 2.24-3build2 [66.9 kB]
获取:7 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 dkms all 2.8.7-2ubuntu2.2 [70.1 kB]
获取:8 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 libgsoap-2.8.117 amd64 2.8.117-2build1 [269 kB]
获取:9 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 liblzf1 amd64 3.6-3 [7,444 B]
获取:10 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/multiverse amd64 virtualbox-dkms amd64 6.1.50-dfsg-1~ubuntu1.22.04.1 [722 kB]
获取:11 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/multiverse amd64 virtualbox amd64 6.1.50-dfsg-1~ubuntu1.22.04.1 [23.3 MB]
获取:12 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/multiverse amd64 virtualbox-qt amd64 6.1.50-dfsg-1~ubuntu1.22.04.1 [22.1 MB]
已下载 86.6 MB,耗时 1分 21秒 (1,074 kB/s)
(正在读取数据库 ... 系统当前共安装有 412404 个文件和目录。)
正在卸载 virtualbox-7.0 (7.0.14-161095~Ubuntu~jammy) ...
正在选中未选择的软件包 cpp-12。
(正在读取数据库 ... 系统当前共安装有 411671 个文件和目录。)
准备解压 .../00-cpp-12_12.3.0-1ubuntu1~22.04_amd64.deb ...
正在解压 cpp-12 (12.3.0-1ubuntu1~22.04) ...
正在选中未选择的软件包 libasan8:amd64。
准备解压 .../01-libasan8_12.3.0-1ubuntu1~22.04_amd64.deb ...
正在解压 libasan8:amd64 (12.3.0-1ubuntu1~22.04) ...
正在选中未选择的软件包 libtsan2:amd64。
准备解压 .../02-libtsan2_12.3.0-1ubuntu1~22.04_amd64.deb ...
正在解压 libtsan2:amd64 (12.3.0-1ubuntu1~22.04) ...
正在选中未选择的软件包 libgcc-12-dev:amd64。
准备解压 .../03-libgcc-12-dev_12.3.0-1ubuntu1~22.04_amd64.deb ...
正在解压 libgcc-12-dev:amd64 (12.3.0-1ubuntu1~22.04) ...
正在选中未选择的软件包 gcc-12。
准备解压 .../04-gcc-12_12.3.0-1ubuntu1~22.04_amd64.deb ...
正在解压 gcc-12 (12.3.0-1ubuntu1~22.04) ...
正在选中未选择的软件包 dctrl-tools。
准备解压 .../05-dctrl-tools_2.24-3build2_amd64.deb ...
正在解压 dctrl-tools (2.24-3build2) ...
正在选中未选择的软件包 dkms。
准备解压 .../06-dkms_2.8.7-2ubuntu2.2_all.deb ...
正在解压 dkms (2.8.7-2ubuntu2.2) ...
正在选中未选择的软件包 libgsoap-2.8.117:amd64。
准备解压 .../07-libgsoap-2.8.117_2.8.117-2build1_amd64.deb ...
正在解压 libgsoap-2.8.117:amd64 (2.8.117-2build1) ...
正在选中未选择的软件包 liblzf1:amd64。
准备解压 .../08-liblzf1_3.6-3_amd64.deb ...
正在解压 liblzf1:amd64 (3.6-3) ...
正在选中未选择的软件包 virtualbox-dkms。
准备解压 .../09-virtualbox-dkms_6.1.50-dfsg-1~ubuntu1.22.04.1_amd64.deb ...
正在解压 virtualbox-dkms (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
正在选中未选择的软件包 virtualbox。
准备解压 .../10-virtualbox_6.1.50-dfsg-1~ubuntu1.22.04.1_amd64.deb ...
正在解压 virtualbox (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
正在选中未选择的软件包 virtualbox-qt。
准备解压 .../11-virtualbox-qt_6.1.50-dfsg-1~ubuntu1.22.04.1_amd64.deb ...
正在解压 virtualbox-qt (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
正在设置 cpp-12 (12.3.0-1ubuntu1~22.04) ...
正在设置 libgsoap-2.8.117:amd64 (2.8.117-2build1) ...
正在设置 liblzf1:amd64 (3.6-3) ...
正在设置 libasan8:amd64 (12.3.0-1ubuntu1~22.04) ...
正在设置 libtsan2:amd64 (12.3.0-1ubuntu1~22.04) ...
正在设置 dctrl-tools (2.24-3build2) ...
正在设置 libgcc-12-dev:amd64 (12.3.0-1ubuntu1~22.04) ...
正在设置 gcc-12 (12.3.0-1ubuntu1~22.04) ...
正在设置 dkms (2.8.7-2ubuntu2.2) ...
正在设置 virtualbox-dkms (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
Loading new virtualbox-6.1.50 DKMS files...
Building for 6.5.0-21-generic
Building initial module for 6.5.0-21-generic
Can't load /var/lib/shim-signed/mok/.rnd into RNG
40B713ED407F0000:error:12000079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:106:Filename=/var/lib/shim-signed/mok/.rnd
.......+..+...+......+....+..+.......+.....+...+.......+......+......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+....+.................+....+........+.......+...+..+....+............+.....+.......+..+...+...+...+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+......+........+.+......+........+.+.....+....+..+................+...+..+...+.........+.......+.........+..+........................+.........+......+.+...+..+............+.......+...+...+.................+...+....+...+.....+......+....+.....+......+.........+.........................+...+..+.......+.....+.+...+..+...+.......+.....+.........+....+.........+...+............+..+.+..+............+.+...+..+....+.....+...+.....................+....+..+...+..............................+.......+...+...+..+.......+...........+...+.+...+..+...............+.+...+.....+.........+.+..+...............+....+........+...+.............+.....+......+.........+.+...............+.........+..+..........+...+..+....+.....+......+....+......+..+............+.+.........+........+.............+.........+...+........+.......+.....+.......+..................+........+...+..........+.....+......+...+...+...+.+...+...+............+...+.....+...+......+.............+........+..........+............+..+.+........+.+.....+......+....+...+..+.........+............+..........+...+..............+.....................+.+...+...+..............+....+.....+.......+........+.+.........+..+.......+...+...+......+...+......+..+...+.........+......+...............+...............+.+.....+.+..+.......+.........+..+...+.......+..+...............+.+.................+...+.+......+..+.+..............+.+......+.....+......+.........+.+..............+..........+...+.....+.......+...+...+.......................+.+.....+...+.+..+...+....+...+........+......+....+..+......................+.....+...+..................+....+...+.........+...........+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+..........+...+.....+....+......+......+.....+.+...+.....+.........+......+......+.+........+.........+.+.........+......+.........+.................+.+........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...........+....+........+.......+...........+.......+........+......+....+.....+......+...+..........+..+...+...+....+.....+....+.........+........+....+...........+...+.......+...+.....+.+..............+.......+..+.+..+....+...+.....+..........+..+......+.......+..+....+..+.............+......+...........+....+.........+..............+......+.+.....+...+................+..+...+....+........+.............+.....+....+...........+.......+..............+.........+....+.................+......+...+..........+..+.........+...+.......+........+...+.........+...+......................+...........+.......+..+......+.........+.+.........+..................+...+..+......+.+...+...........+.......+..+...+.........+...+.......+.........+..+............+.+.........+..+..........+......+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
----- Secure Boot not enabled on this system.
Done.
vboxdrv.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/6.5.0-21-generic/updates/dkms/
vboxnetadp.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/6.5.0-21-generic/updates/dkms/
vboxnetflt.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/6.5.0-21-generic/updates/dkms/
depmod...
正在设置 virtualbox (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
正在设置 virtualbox-qt (6.1.50-dfsg-1~ubuntu1.22.04.1) ...
正在处理用于 mailcap (3.70+nmu1ubuntu1) 的触发器 ...
正在处理用于 desktop-file-utils (0.26-1ubuntu3) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
正在处理用于 gnome-menus (3.36.0-1ubuntu3) 的触发器 ...
正在处理用于 libc-bin (2.35-0ubuntu3.6) 的触发器 ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
正在处理用于 shared-mime-info (2.1-2) 的触发器 ...
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
libsdl-ttf2.0-0 linux-image-5.15.0-58-generic linux-image-5.19.0-50-generic linux-image-6.2.0-39-generic linux-modules-5.15.0-58-generic linux-modules-5.19.0-50-generic linux-modules-6.2.0-39-generic
linux-modules-extra-5.15.0-58-generic linux-modules-extra-5.19.0-50-generic linux-modules-extra-6.2.0-39-generic
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
libelf-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 64.4 kB 的归档。
解压缩后会消耗 373 kB 的额外空间。
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 libelf-dev amd64 0.186-1build1 [64.4 kB]
已下载 64.4 kB,耗时 0秒 (163 kB/s)
正在选中未选择的软件包 libelf-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 412655 个文件和目录。)
准备解压 .../libelf-dev_0.186-1build1_amd64.deb ...
正在解压 libelf-dev:amd64 (0.186-1build1) ...
正在设置 libelf-dev:amd64 (0.186-1build1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
╭─pon@amd5700g ~/Downloads
╰─➤ sudo /sbin/vboxconfig
sudo: /sbin/vboxconfig:找不到命令
╭─pon@amd5700g ~/Downloads
╰─➤ history | grep vbox 1 ↵
2652 systemctl status vboxdrv
2653 sudo systemctl start vboxdrv
2654 systemctl status vboxdrv
2655 sudo systemctl start vboxdrv
2656 systemctl status vboxdrv
2657 sudo systemctl restart vboxdrv
2658 systemctl status vboxdrv
4732 sudo /sbin/vboxconfigsudo /sbin/vboxconfig\n
4733 sudo /sbin/vboxconfig
4786 sudo /sbin/rcvboxdrv setupsudo /sbin/rcvboxdrv setup
4787 sudo /sbin/rcvboxdrv setup
4788 cat /var/log/vbox-setup.log
4809 sudo /sbin/vboxconfig
╭─pon@amd5700g ~/Downloads
╰─➤ sudo /sbin/rcvboxdrv setup
sudo: /sbin/rcvboxdrv:找不到命令
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/b9ab79bf8f3a580cd1f612033169487a.png)
"https://blog.csdn.net/minkeyto/article/details/82527095" (https://link.segmentfault.com/?enc=LnNFieFuTKEhL3qH6OOM3A%3D%3D.Mp%2BnDho15irQSp2QwZ5%2BtGWkzfuiJWwbOPH92RdsRnjHtgKzi0SIFd9UlNy0M2WQ7s1l2aK67eQTXE8iYPk0tQ%3D%3D)
雾里
js import() 如何清除缓存?
一种方法是像AI回答一样的加一个时间戳,让浏览器每次都重新加载js文件
import(`./myModule.js?v=${Date.now()}`);
如果你用的是webpack构建,可以这样设置:
module.exports = {
//...
cache: false,
};
来自:"https://webpack.docschina.org/configuration/cache/" (https://link.segmentfault.com/?enc=Mb%2B3kbPKo79y8%2B%2F%2BRhOVyA%3D%3D.XyCBn0WrWFnKHXdmSVbQFwy%2FgTafbdDmWE8%2Bga4Yv1GFm2mLf7bRwd5qYevMk0ltnLSNptBxZPVdsAsB%2FfUXqg%3D%3D)
使用vite:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/704d739bd525558863cc86d72d07541c.png)
来自:"https://cn.vitejs.dev/guide/dep-pre-bundling.html#caching" (https://link.segmentfault.com/?enc=Tz7CJnhiG9bu4%2Bie026uTw%3D%3D.hzh%2FAyoeTDG1L8lhkP4XuyScdhNmMq9KbHulTLkZjPLJB6pxNenDHhSojNIYBRFoFGPUrq%2B9jEBrhs10AZQYiA%3D%3D)
雾里
uniapp 微信小程序,通过手机号一键登录之后,登录状态过期如何实现静默登录?
使用 "wx.login" 获取用户 "openid" 请求后端解密处理验证完成之后返回新的 "token"。
雾里
在鸿蒙OS的arkts的axios中, 怎么取消某个http请求?
axios封装ets
import axios, { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from '@ohos/axios';
const service=axios.create({
// 配置域名前缀
baseURL:"https://devb2b.wsttrip.cn",
headers: {
'Content-Type': 'application/json',
"Channel":"B2B"
},
method:"post",
})
// 添加请求拦截器
service.interceptors.request.use((config:InternalAxiosRequestConfig) => {
// 对请求数据做点什么
return config;
}, (error:AxiosError) => {
// 对请求错误做些什么
return Promise.resolve(error);
});
// 添加响应拦截器
service.interceptors.response.use((response:AxiosResponse)=> {
// 对响应数据做点什么
return response;
}, (error:AxiosError)=> {
// 对响应错误做点什么
return Promise.resolve(error);
});
export default service;
调用封装接口
import {User} from '../../api/User'
@Entry
@Component
struct Index {
build() {
Button("提交注册", { type: ButtonType.Normal, stateEffect: true })
.borderRadius(50)
.width('100%')
.height(45)
.margin({ top: 35 })
.fontSize(16)
.onClick(() => {
User({
"accountName": "liu9470",
"password": "123456"
}).then((res)=>{
console.info(JSON.stringify(res))
}).catch((err)=>{
console.info(JSON.stringify(err))
})
})
}
}
// 取消请求
controller.abort()
«本文参与了"思否 HarmonyOS
技术问答马拉松" (https://segmentfault.com/a/1190000044600728),欢迎正在阅读的你也加入。»
雾里
使用Vue.js制作图片到Div的飞入和缩小效果?
大佬们,用vue怎么实现,上面是一个图片,下面是一个div,点击图片飞入到div里面(垂直方向上),且图片慢慢缩小直至消失呢?
translate(0rpx, 100px),用这个写,慢慢缩小的怎么做呢,且可以飞到div里指定位置
雾里
js 字符串转整数 然后在+百万的数 为什么计算结果会出错?
超出最大整数就会出现不正常的结果,首先了解下BigInt,就是为了解决这个问题
BigInt数据类型的目的是比Number数据类型支持的范围更大的整数值.在对大整数执行数学运算时,以任意精度表示整数的能力尤为重要,使用BigInt,整数溢出将不再是问题.
最大整数: Number.MAX_SAFE_INTEGER -> 9007199254740991
最小整数: Number.MIN_SAFE_INTEGER -> -9007199254740991
创建:BigInt("9007199254740995"); // → 9007199254740995n
//不使用BigInt返回结果是异常的
9007199254740992 === 9007199254740993 true
//使用BigInt返回结果是正常的
9007199254740992n === 9007199254740993n false
BigInt("9007199254740995") + BigInt("9007199254740995")=18014398509481990n
Number(18014398509481990n) = 18014398509481990
雾里
如何解决在使用Naive UI Upload组件时 file.name 为 undefined?
在使用"Naive UI 的 Upload
组件" (https://link.segmentfault.com/?enc=d7MJG5N8njb0R%2Fh8GmaUdQ%3D%3D.DMVZHhdlVVR06nu%2Btv7KDGFCJj9wWs0NZgRlha7k3kkDg98KCQOQzWEjb2WiSTkSzrLF4vJaZBG%2FA8KyjEq6Cg%3D%3D)时,有如下代码逻辑(已做简化)
我想利用 "generateData" 在提交的表单上附加数据,但直接读取 "file.name" 始终为 "undefined",直接打印 "file"
到控制台和使用 "JSON.stringify" 却能获得符合预期的结果。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241004/dd58257f8bd7e1377d7dd802b11002cc.png)
const generateData = (file: UploadFileInfo) => {
const objectName = file.name
console.log('generateData', objectName)
console.log(JSON.stringify(file, null, 2))
console.log(file)
return {
...pick(ossDirectPostObjectInfo.value!, ['ossAccessKeyId', 'policy', 'signature']),
key: objectName,
'x-oss-meta-user': userStore.userVO!.id.toString()
}
}
期望正常读取 "file.name"
雾里
HarmonyOS Next开发中arkts中如何把object对象转为map?
HarmonyOS Next开发中arkts中如何把object对象转为map?
msgpack解析后的对象是object,如何将object转为map,因为ArkTS不允许使用TypeScript或JavaScript标准库中的大部分与动态特性有关接口,hasOwnProperty等不让使用,无法通过[]或者.获取object属性值:
function jsonStringToMap(jsonString: string): Map {
const obj = JSON.parse(jsonString);
const map = new Map();
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
map.set(key, obj[key]);
}
}
return map;
}
还有其他办法吗?
雾里
Mysql 在 JSON_ARRAYAGG 函数上用 order by 不生效 ,怎么办 ?
SELECT
JSON_ARRAYAGG( JSON_OBJECT( 'name', NAME ) )
FROM
student
ORDER BY
id
雾里
如何在一个域名下登陆多个账户?
不明白你到底想干什么。可能的解决方案
1. 多浏览器
2. 火狐身份标签
3. 从url下手
2. 127 的地址有大量的空间,不是可以随便用
3. 利用nginx 的反向代理功能
1. 监听不同端口
4. 通过 query 识别不同身份
雾里
vue3数据处理的问题?
因为这个数据是proxy代理的,所以打印出来就是这样的,如果你觉得控制台这样看着不直观,可以通过控制台的设置支持自定义log的格式让vue
proxy的数据看起来更直观:
第一步点击控制台的设置按钮:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240930/d1cd1f7b40ea4f50d2c879bf2394d461.png)
第二步勾选自定义格式:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240930/9d61220e690518d50ef2d841965ff01a.png)
雾里
如何优雅地实现图片局部预览组件?
之前看过类似功能的博文,希望对你有帮助:"https://juejin.cn/post/6844903955915341831" (https://link.segmentfault.com/?enc=a%2FG7IDsKTU7nxqgLuSO23g%3D%3D.fXlwaTupxZVR4C9cBsPOHHyiIqBhuAYiVuxNpXUcvPRy4u15Sr81x8hqCFavijnm)。用的是cropper.js
雾里
如何为一个子网站设置路由转发?
就nginx就行了,对 "/help" 进行转发,当然通过前端代码也可以,但是没必要
雾里
作品与章节的多种状态及审核流程实现该怎么设计?
如何设计一个小说网站:
作者可以创建作品、发布章节;
管理员可以审核作品和章节决定是否对用户发布;
对于已发布的作品和章节,管理员日常巡检时,可以直接修改其审核状态和审核原因;
对于已发布的作品和章节,作者可以进行修改,修改后可以仅保存,也可以提交审核;
管理员可以审核作品和章节的更新申请,可以通过也可以驳回;
作品有连载中、已完结、停更三种状态;
作品有未签约、签约中、已签约三种状态;
作品和章节有不允许作者编辑的状态;
管理员可以直接设置作品和章节的可见状态;
状态太多了,设计了好多次都不尽人意。
雾里
vue2的 ssr 渲染 nuxt.js 使用vue-awesome-swiper新老数据混合存在怎么回事?
vue2 使用vue-awesome-swiper3.1.3,服务端渲染nuxt.js, 我擦,坑是真特么多,一步一个坑,坑死人了。
现在是数据更新后,新老数据都存在,导致,activeIndex,realIndex 都不对。
有人遇到过吗?如何解决?
雾里
springboot定时任务服务,现在是单节点,用的@Scheduled,要改成多节点的,有没有简单的改造方案?
@Scheduled的最后会被交给TaskScheduler去调度
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/1e3bb8a61dc2f1084a26c8ec9569b75e.png)
他的已知实现有这些
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/79c38e16366708d4893d28e2fcfa2b1c.png)
我们最常用的是ThreadPoolTaskScheduler,基于JDK线程池的任务调度器。
如果我们要实现集群模式下只能有一个节点执行任务,还使用@Scheduled可以这样做:
配置ThreadPoolTaskScheduler时,重写他实现的接口TaskScheduler的所有方法,在执行前使用redis加分布式锁,执行完毕释放redis分布式锁
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/db39ff7ad8aa0785b16abee2ee017747.png)