登进dragon官网E-Dragon Software (vcclab.org)后,碰到<center><h1><BR> Your browser is completely ignoring the <APPLET> tag! </h1></center>,解决办法如下:
参考这位大佬的帖子https://blog.csdn.net/xiaosuom/article/details/118880318 ,我将下载java 32bit和firefox50.0 32bit内容补充了一下,仅供参考。
一、安装java 32bit
笔者安装的是SE8版本。
首先进入官网,注册登录
http://vcclab.org/lab/edragon/#:~:text=E-DRAGON%20is%20the%20electronic%20remote%20version%20of%20the,and%20QSAR%20Research%20Group%20of%20Prof.%20R.%20Todeschini.
找到这个部分后,点击x86(就是32位的意思)后面的蓝色字体
下载后安装
检查
按住windows+R,打开cmd窗口,输入 java -version,查看版本,如果没有出现64bit,就说明是32bit,下载正确,注意输入的空格
二、安装50.0版本32位的火狐浏览器
进入火狐官网以前的版本
Directory Listing: /pub/firefox/releases/ (mozilla.org)
2.先点50.0版本,找到并点击win32,然后拉到最后,发现有个zh-ch(中文),再点进去,下载
3.安装
安装时选择自定义,不要勾选自动更新。
4.防止自动更新
打开火狐以后,点三条杠菜单,选项,高级,选择不检查更新。
顺便查看更新历史,我第一次下载的50.0,在这里面发现已经给我更新到59了。所以如果你发现更新到50.0后面的版本的话,需要卸载后重新下载。
5、查看java插件(按照开头的参考链接)
6、在配置java中按照dragon FAQ提示的那样把地址添加到例外站点列表
三、打开dragon
打开火狐浏览器后,你可能发现他说Application error: a client-side exception has occurred (see the browser console for more information).。不用在意,直接输入dragon官网地址,点击start the program,此时就出现了正常打开文件的界面,再按照说明书FAQ上传文件即可。
四、温馨提示
如果java安装错误,需要卸载后重新安装的话,注意要打开控制面板,选择程序与功能里面卸载,否则你重新安装时很有可能提示你之前的版本还没卸载完整。
检查配置java中常规,是否启用浏览器中的java
如果插件有问题,参考这个Firefox 中使用 Java 插件 | Firefox 帮助 (mozilla.
功能效果
选择一个月(是从当前日期往后开始计算不去除周末节假日)
用到的组件 npm install moment -S var moment = require('moment'); moment().format(); import moment from “moment” moment().format(); <el-radio-group v-model="form.period" @input="timeChange"> <el-radio :label="1">一个月</el-radio> <el-radio :label="3">三个月</el-radio> <el-radio :label="6">6个月</el-radio> <el-radio :label="12">一年</el-radio> </el-radio-group> js 代码
import moment from 'moment';
timeChange(val) { this.form.endTime = '' const date = new Date(); // 开始日期都为当前系统日期 this.form.startTime = moment(date).format('YYYY-MM-DD') // 获取当前时间前后一个月 if (val) { //val 为往后几个月 const startDate = moment(date).add(val, 'month').startOf('month').format('YYYY-MM-DD'); const lastDate = startDate.split('-') const nextyear = lastDate[0] const nextMonth = lastDate[1] // 结束日期 this.
升级之前建议阅读下面这篇文章,会对升级有帮助
vue官方文档:vue3迁移指南
注:vue3是支持vue2的选项式API风格的
下面就进入升级的流程了
环境准备,如果node和npm的版本过低需要升级,我的环境如下:
依赖升级以及错误修复
升级之前项目采用的是vue2.6+ant-design-of-vue1.7+less+axios+webpack,因为项目采用的是vue-cli搭建的,所以第一步是升级vue-cli,通过 vue upgrade 命令升级到最新的 @vue/cli-service
在终端执行npm view vue versions --json.查看vue的历史版本,选择合适的vue3版本后更改package.json,删除node-module,执行yarn重新安装node-module包,安装完成之后安装与vue版本相同的@vue/compact,如果项目中存在vue-template-compiler的话,将其替换为@vue/compiler-sfc
启动项目,根据终端的报错信息来修改项目
2.1 ERROR ValidationError: Invalid options object. Ignore Plugin has been initialized using an options object that does not match the API schema. - options should be one of these: object { resourceRegExp, contextRegExp? } | object { checkResource } Details: * options misses the property 'resourceRegExp'. Should be: RegExp -> A RegExp to test the request against.
随着电脑的不断更新迭代,现在新出来的电脑都是win11系统,很多人会疑问win11和win10哪个比较好?哪个更稳定,今天您带来win11和win10两大系统对比。
1.win11和win10流畅性
现在经过不断的测试实验,发现win11在单线程和多线程运行的时候都要比win10要更加流程一些。 但是win11会存在响应速度慢,很多用户在使用win11的时候,点击之后,会等待一段时间。
2.win11和win10系统游戏对比
在一些大型的游戏中,win11系统要比win10表现的要好,其其平均帧率都要高于win10。但是win11缺点就是优化较差,对于内存和cpu的消耗比win10高很多。
3.win11和win10操作
win11系统对于界面进行了重做,win11系统所有的窗口、对话框都使用了圆角窗口,win11还会删除控制面板功能,所有的设置功能都可以在系统设置中进行实现。全新的桌面ui,任务栏居中,去除磁贴的开始菜单,全新的右键菜单都需要用户亲自体验才能了解。
spark-sql> desc test2; userid int NULL date string NULL list_01 array<string> NULL target string NULL group_num int NULL Time taken: 0.526 seconds, Fetched 5 row(s) spark-sql> select * from test2; 1 20220303 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 1:20220303 1 1 20220202 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 1:20220202 1 1 20220202 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 1:20220202 1 2 20220202 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 2:20220202 2 3 20220303 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 3:20220303 2 3 20220303 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 3:20220303 2 3 20220303 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 3:20220303 3 3 20220303 ["1:20220202","1:20220202","2:20220202","3:20220303","3:20220303","3:20220303","3:20220303","1:20220303"] 3:20220303 3 spark-sql> select named_struct('a',target, 'b',list_01) from test2 limit 1; {"
1.将ruoyi-captcha 复制到 ruoyi-modules下
并在 ruoyi-modules 的 pom.xml中增加 ruoyi-captcha
2.配置nacos,在gateway的配置文件中增加
滑动验证码 - id: ruoyi-captcha uri: lb://ruoyi-captcha predicates: - Path=/captcha/** filters: - StripPrefix=1 并且 - /captcha/get - /captcha/check - /captcha/verify 增加白名单 关闭原来的验证码校验 设置为false
3.前端
下载后打开ruoyi-vue \集成aj-captcha实现滑块验证码
在ruoyi-ui终端安装 npm install crypto-js --save-dev
再按照目录结构,把 api\login.js替换,views/login.vue替换,静态资源和组件复制进去就ok了
文件地址:
链接:https://pan.baidu.com/s/1GR4X8Y3LYvfCRUh_GDOIbQ?pwd=mku3
提取码:mku3
测试中发现滑动验证码如果使用redis存储会出现
CaptchaCacheServiceRedisImpl内的StringRedisTemplate无法注入
需要将AJ-Captcha的依赖版本1.2.7更改为1.3.0
并且将redis的引入更改为
private static final StringRedisTemplate stringRedisTemplate = SpringUtils
.getBean(“stringRedisTemplate”);
package com.carbon.common.core.utils; import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.
java基础—Volatile关键字详解 文章目录 java基础—Volatile关键字详解并发编程的三大特性:volatile的作用是什么volatile如何保证有可见性volatile保证可见性在JMM层面原理volatile保证可见性在CPU层面原理可见性问题的例子 volatile如何保证有序性单例模式使用volatile保证有序性的例子 volatile能保证线程安全吗?volatile能保原子性吗?volatile不能保证原子性详细解析 演示内存可见性的5个例子案例1:flag加上volatile关键字案例2:while循环中加上System.out.println("!!");案例3:while循环中加上synchronized (TestVolite.class)案例4:while中加上test2()(被synchronized修饰)案例5:while循环中加上test1方法案例总结 happens-before (先行发生)原则—《深入理解Java虚拟机》 并发编程的三大特性: 原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字 被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。一旦一个共享变量被 volatile关键字 修饰,那么就具备了两层语义:内存可见性和禁止进行指令重排序。
原子性:就是一个操作或多个操作中,要么全部执行,要么全部不执行。
例如:账户A向账户B转账1000元,这个么过程涉及到两个操作,(1)A账户减去1000元 (2)B账户增加1000元。这么两个操作必须具备原子性。否则A账户钱少了,B账户没增加。
有序性: 程序执行顺序按照代码先后顺序执行。
处理器为了提高程序运行效率,可能会对输入代码进行优化,它不保证程序中各个语句的执行先后顺序同代码中的顺序一致(指令重排),但是它会保证程序最终执行结果和代码顺序执行的结果是一致的。(此处的结果一致指的是在单线程情况下)
指令重排的理解:单线程侠,如果两个操作更换位置后,对后续操作结果没有影响,可以对这两个操作可以互换顺序。
可见性: 可见性是指多线程共享一个变量,其中一个线程改变了变量值,其他线程能够立即看到修改的值。
//线程1执行的代码 int i = 0; i = 10; //线程2执行的代码 j = i; CPU1执行线程1代码,CPU执行线程2代码。CPU读取i=0到CPU缓存中,修改i=10到自己缓存,还没更新到主存,此时CPU2读取的i还是主存中i=0,此时j会被赋值为0;
volatile的作用是什么 volatile是一个类型修饰符,JDK1.5之后,对其语义进行了增强。
保证了不同线程之间对共享变量操作的可见性。通过禁止编译器、CPU指令重排序和部分hapens-before规则,解决有序性。 volatile如何保证有可见性 volatile保证可见性在JMM层面原理 volatile修饰的共享变量在执行写操作后,会立即刷回到主存,以供其它线程读取到最新的记录。
volatile保证可见性在CPU层面原理 volatile关键字底层通过lock前缀指令,进行缓存一致性的缓存锁定方案,通过总线嗅探和MESI协议来保证多核缓存的一致性问题,保证多个线程读取到最新内容。 lock前缀指令除了具有缓存锁定这样的原子操作,它还具有类似内存屏障的功能,能够保证指令重排的问题。
被volatile修饰的变量在写操作生成汇编指令时,会多出Lock前缀指令,这个指令会引起CPU缓存刷回主存。刷回主存后,导致其他核心缓存了该内存地址的数据无效,通过缓存一致性协议(MESI)保证每个线程的数据是最新的。缓存一致性协议保证每个CPU核心通过嗅探在总线上传播的数据来检查自己的缓存是不是被修改,· 当 CPU 发现自己缓存行对应的内存地址被修改,会将当前 CPU 的缓存行设置成无效状态,重新从内存中把数据读到 CPU 缓存 可见性问题的例子 启动线程1和线程2,线程2设置stop=true。查看线程1是否会停止
public class TestVisibility { //是否停止 变量 private static boolean stop = false; public static void main(String[] args) throws InterruptedException { new Thread(() -> { System.
1、安装
npm i redux 2、在src目录下新建一个store文件夹
index.js中
import { createStore } from "redux"; // 导入纯函数 import reducer from "./reducer"; // 创建store实例(在整个应用中是唯一),可以为整个应用的所有组件共享 export default createStore(reducer); reducer.js中
// 纯函数 // 参数一:state,store中的数据 // 参数二:action,负责接收action(一般是一个对象:{type:'',payload:''}) var initialState={ count:0, zt:true } // 定义纯函数,并导出该函数 export default function reducer(state=initialState,action){ // 判断动作类型,根据不同的类型,执行不同的业务操作 if(action.type == 'ADD'){ // 执行 state.count++ }else if(action.type == 'DELETE'){ state.count-- }else if(action.type == 'XXX'){ } // 一定不要忘了修改后的state return state; } 3、之前是在每个组件中导入仓库,现在使用hooks
npm i react-redux index.js中
实验5《LR(1)分析法设计与实现》 一、实验目的 构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法。
二、实验内容 程序输入/输出示例(以下仅供参考):
对下列文法,用LR(1)分析法对任意输入的符号串进行分析:
(1)E-E+T (2)E-E—T (3)T-T*F (4)T-T/F (5)F-(E) (6)F-i 输出的格式如下:
(1)LR(1)分析程序,编制人:姓名,学号,班级
(2)输入一个以#结束的符号串(包括+—*/()i#):在此位置输入符号串
(3)输出过程如下:
步骤状态栈符号栈剩余输入串动作10#i+i*i#移进 (4)输入符号串为非法符号串(或者为合法符号串)
备注:
1.在“所用产生式”一列中如果对应有推导则写出所用产生式;如果为匹配终结符则写明匹配的终结符;如分析异常出错则写为“分析出错”;若成功结束则写为“分析成功”。
2.在此位置输入符号串为用户自行输入的符号串。
注意:
1.表达式中允许使用运算符(±*/)、分割符(括号)、字符i,结束符#;
2.如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好);
3.对学有余力的同学,测试用的表达式事先放在文本文件中,一行存放一个表达式,同时以分号分割。同时将预期的输出结果写在另一个文本文件中,以便和输出进行对照。
三、实验方法 1.实验采用C++程序语言进行设计,文法写入程序中,用户可以自定义输入语句;
2.实验开发工具为Visual Studio Code。
四、实验步骤 1.定义LR(1)分析法实验设计思想及算法
①若ACTION[sm , ai] = s则将s移进状态栈,并把输入符号加入符号栈,则三元式变成为:(s0s1…sm s , #X1X2…Xm ai , ai+1…an#);
②若ACTION[sm , ai] = rj则将第j个产生式A->β进行归约。此时三元式变为(s0s1…sm-r s , #X1X2…Xm-rA , aiai+1…an#);
③若ACTION[sm , ai]为“接收”,则三元式不再变化,变化过程终止,宣布分析成功;
④若ACTION[sm , ai]为“报错”,则三元式的变化过程终止,报告错误。
2.定义语法构造的代码,与主代码分离,写为头文件LR.h。
3.编写主程序利用上文描述算法实现本实验要求。
五、实验结果 1. 实验文法为程序既定的文法,写在头文件LR.h中,运行程序,用户可以自由输入测试语句。
2. 实验测试结果:
测试结果符合预期结果,程序能够对用户的语句利用LR(1)分析法构建分析表,利用分析栈进行正误分析。实验截图如下所示:
六、实验结论 1.实验利用自定义的源程序进行测试,结果正确,符合预期结果,测试源码及结果截图和说明如上所示。
第五届字节跳动青训营寒假 —— 前端专场 文章目录 第五届字节跳动青训营寒假 —— 前端专场青训营 - 前端练习题每日一练编程题前端编程题[342. 4的幂](https://leetcode.cn/problems/power-of-four/)[125. 验证回文串](https://leetcode.cn/problems/valid-palindrome/)[5. 最长回文子串](https://leetcode.cn/problems/longest-palindromic-substring/description/) 后端编程题题目1题目2题目3 写在最后 青训营 - 前端练习题 每日一练 DAY 1
选择题 1: 下列哪些是 HTML5 的新特性? A. 语义标签 B. Canvas 绘图 C. <audio>元素 D. 增强型表单 【答案】ABCD
选择题 2: 下面可以继承的属性有哪些? A. font-size B. background C. color D. cursor 【答案】ACD
【解析】
css不可以继承的属性:display、margin、padding、border、background、width、min-width、max-width、height、min-height、max-height、overflow、position、top、bottom、left、right、z-index、float、clear、table-layout、vertical-align、page-bread-before、page-bread-after、unicode-bidi
所有元素都可以继承:visibility、cursor
子元素可以继承:letter-spacing(字符间距)、word-spacing(单词间距)、white-space(如何处理元素内的空白)、line-height(设置行高,内联元素不可以继承,设置为行内块元素可以继承)、color、font、font-size、font-family、font-style、font-weight、font-variant(大写字母)、text-decoration(文本下划线、中划线)、text-transform(首字母大写、转大写)、direction(rtl-文本方向从右向左)、text-indent(首行缩进)、text-align(文本对齐)
列表元素(li)可继承:list-style、list-style-type、list-style-position、list-style-image
表格元素可继承:border-collapse
DAY 2
选择题 1: 对于一条100M的宽带,理论下载速度上限是多少? A. 12.5MB/s B. 100MB/s C. 10MB/s D. 10Mb/s 【答案】A
【解析】1Byte = 8bit,因此理论下载速度上限是:100Mb/s ÷ 8 = 12.
通过添加Libraries的方式引入:
1、首先在根目录下创建一个 libs 的目录
2、打开 File -> Project Structure
3、单击 Libraries -> "+" -> "Java" -> 选择我们导入的项目主目录,点击OK
4、注意:在弹出的方框中点击“Cancel”,取消将其添加到Module中。
5、libs目录创建成功,删除目录中添加进来的多余内容,重新添加需要的jar包
6、重新添加需要的jar包
7、引入jar包:Modules -> 项目 -> “Dependencies”,点击“+” -> “Library”,将刚才创建成功的Library目录加入
8、jar包导入成功!
9、如果要将引入的jar包打包到war中,需要在pom文件中添加以下配置+
<!-- 引用本地jar包 --> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>16.8.0</version> <scope>system</scope> <systemPath>${pom.basedir}/libs/aspose-words-16.8.0-jdk16.jar</systemPath> </dependency> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-cells</artifactId> <version>8.5.2</version> <scope>system</scope> <systemPath>${pom.basedir}/libs/aspose-cells-8.5.2.jar</systemPath> </dependency> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-slides</artifactId> <version>15.9.0</version> <scope>system</scope> <systemPath>${pom.basedir}/libs/aspose.slides-15.9.0.jar</systemPath> </dependency> <!-- 将本地jar包打到war中 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>compile</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory> <includeScope>system</includeScope> </configuration> </execution> </executions> </plugin>
1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。
不过我们在使用它时有个约束,就是使得投掷骰子时,连续 掷出数字 i 的次数不能超过 rollMax[i](i 从 1 开始编号)。
现在,给你一个整数数组 rollMax 和一个整数 n,请你来计算掷 n 次骰子可得到的不同点数序列的数量。
假如两个序列中至少存在一个元素不同,就认为这两个序列是不同的。由于答案可能很大,所以请返回 模 10^9 + 7 之后的结果。
示例 1 输入:n = 2, rollMax = [1,1,2,2,2,3]
输出:34
解释:我们掷 2 次骰子,如果没有约束的话,共有 6 * 6 = 36 种可能的组合。但是根据 rollMax 数组,数字 1 和 2 最多连续出现一次,所以不会出现序列 (1,1) 和 (2,2)。因此,最终答案是 36-2 = 34。
示例 2 输入:n = 2, rollMax = [1,1,1,1,1,1]
输出:30
示例 3 输入:n = 3, rollMax = [1,1,1,2,2,3]
//MonoBehaviour类特性说明
void Awake(){}在游戏运行前就已经执行,所以适合初始化一些定义,如获得刚体组件。
void Start(){}在游戏运行时,在最开始执行,所以适合对public输入的值进行初始化操作。
void Update(){}根据不同电脑的性能而不同,反映在Statics里为刷新频率。
void FixedUpdate(){}由于要在不同的设备上实现同样的效果,因此通过固定刷新率来达到对数据更新频率相同。
//Rigidbody2d带有函数性质说明
private OnCollisionEnter2D(Collision2D other){}刚体物体特性,在两个刚体碰撞时触发,Collision2D other为另一个碰撞刚体的特性,用以抓取信息。一般还会用——
另一物体的类 name_you_want = other.gameObject.GetComponent<另一物体的类>();
来获得另一物体的类的其中public的方法。
private OnCollisionExit2D(Collision2D other){}在另一刚体碰撞,并且离开后才触发。
private OnCollisionStay2D(Collision2D other){}在另一刚体碰撞,并且持续碰撞时触发(?)。
private OnTriggerEnter2D(Collision2D other){}与collision不同的是,此函数在本类为trigger时,作为触发器触发。条件与collision相同,下面两个函数也是。
private OnTriggerExit2D(Collision2D other){}
private OnTriggerStay2D(Collision2D other){}
//ruby控制器源码 RubyController.cs //控制器移动
首先声明public speed,可用来定义移动速度。
因为考虑碰撞,所以加入了rigidbody 2d组件以及box collider 2d(在unity中)。
horizontal, vertical分别存放用户在水平、垂直方向的输入,并且在update()中进行取值。
然后在FixedUpdate()中通过transform.positon直接获取当前物体的位置,通过更改向量的值得出新的位置数值,随后通过rigidbody2d.position更改位置。
Attention:这里不直接更改transform.position,而是交给rigidbody2d去计算碰撞,是因为直接更改位置会出现碰撞物体时不断修正从而产生抖动的问题。
//生命数值(内部数据),更改生命值方法
public maxHealth = 5
private currentHealth
public声明的数据可以直接在unity界面中视情况进行更改,此时赋值只是给定一个default值。private声明的数值则仅可在本类中使用(C#性质,也可以用函数去间接更改)。
更改生命时由于受伤时需要添加无敌时间、受伤动画,所以首先进行判断,此次更改数值amount是否为负数,若成立,判断是否处于无敌状态。若处于无敌状态,则跳过添加无敌时间、受伤动画的判断,若不处于,则使玩家获得无敌时间,同时animator.SetTrigger("Hit"),即播放受伤动画。
最后才为使用Mathf.Clamp,更改currentHealth为(0,maxHealth)之间的数。
//无敌时间计时器
//设置无敌时间为2秒
public float timeinvincible = 2.0f;
//判断是否在无敌期间
bool isInvincible;
//定义变量,设定无敌时间计时器
float invincibleTimer;
rundll32.exe是运行dll文件的一个程序,对于系统来说是非常重要的。许多用户在尝试启动某些程序时遇到rundll32.exe应用程序错误的情况,这可怎么办?下面就来看看具体的解决办法。
修复 1:执行 SFC 和 DISM 扫描。
第 1 步:打开运行终端。可以使用快捷方式 Windows 和 R 来做同样的事情。
第 2 步:键入 cmd 并按住 Ctrl+Shift+Enter 键 以在管理员模式下打开命令提示符。
第 3 步:如果您注意到 UAC 提示请求访问,请单击是。
第 4 步:依次键入以下命令。在每个命令后按 Enter 键
DISM /在线 /Cleanup-Image /RestoreHealth
sfc/scannow
第 5 步:请耐心等待扫描完成。扫描完成后,重新启动系统。
如果有任何损坏的文件,扫描会清除它们。现在,检查这是否解决了问题。
修复 2:清除浏览器的缓存。
第 1 步:打开 Google Chrome 浏览器
第 2 步:在地址栏中,键入以下命令并按 Enter
chrome://settings/clearBrowserData
第 3 步:在打开的清除浏览数据窗口中,从 时间范围 下拉菜单中选择 所有时间
第 4 步: 勾选缓存 的 图像和文件
第 5 步:按 清除数据 按钮
使用代理服务器有以下几种方法:
直接在网络设置中进行设置:可以在操作系统的网络设置中直接配置代理服务器的地址和端口。
使用浏览器插件:可以使用浏览器的插件,例如“Proxy SwitchyOmega”,简化代理服务器的配置。
在程序中设置代理:如果您正在开发某些程序,您可以在代码中设置代理。例如,在Python中,您可以使用“requests”库设置代理。
通常情况下,代理服务器的配置需要代理服务器提供商提供的服务器地址和端口。常用的代理类型包括HTTP代理,SOCKS代理和HTTPS代理。您可以根据自己的需求选择合适的代理类型。
根据邮件的重量和用户是否选择加急,可以计算邮费。计算方法如下:
如果重量在1000克以内(包括1000克),基本费为8元。如果重量超过1000克,超过部分每500克加收超重费4元,不足500克部分按500克计算。如果用户选择加急,多收5元。 输入格式:一行整数和字符,整数为邮件重量(单位克),字符表示是否加急(y代表加急,n代表不加急)。
输出格式:一个整数,表示邮费。
样例:
输入样例:1200 y 输出样例:17
css3 css3中新增的一些特性大概可以分为:选择器,背景和边框属性,文本效果,2D/3D转换
1. 新增一些选择器、伪类选择器和伪元素选择器 选择器: :first-child /* 选择元素第一个孩子 /
:last-child /* 选择元素最后一个孩子 /
伪类:用于向某些选择器添加特殊的效果(没有创建新元素) a:link {color: #FF0000} /* 未访问的链接 /a:visited {color: #00FF00} / 已访问的链接 /a:hover {color: #FF00FF} / 鼠标移动到链接上 /a:active {color: #0000FF} / 选定的链接 */
伪元素:用于向某些选择器添加特殊的效果(创建了 html 中不存在的元素) ::before {} /* 选择器在被选元素的前面插入内容和定义* css,使用 content 属性来指定要插入的内容。 */
::after {} /* 选择器在被选元素的后面插入内容和定义* css,使用 content 属性来指定要插入的内容。 */
2.背景和边框 背景:规定背景图片的尺寸:background-size规定背景图片的定位区域:background-origin(content-box、padding-box、margin-box)边框:border-radius: 圆角border-shadow/text-shadow: 阴影border-image: 边框图片
3.文本效果
text-shadow 向文本添加阴影text-justify 规定当 text-align 设置为 “justify” 时所使用的对齐方法text-emphasis 向元素的文本应用重点标记以及重点标记的前景色text-outline 规定文本的轮廓
echarts 的resize 用来改变图表尺寸,当容器大小发生变化时使用 window.onresize = myChart.resize 可使图标随着屏幕大小改变。
1. 为echarts准备一个具有宽高的div容器(简单来说就是存放图表的一个占位)
2. 获取定义id并通过echarts.init()方法初始化echarts实例
3. 根据个人需求调整图表的配置项和数据
4. 通过setOption()方法生成图表
在官网给出了我们许多示例
我们都可以直接拿来用,但是里面的一些配置我们可以根据自己的需求来修改,所以我们需要了解ECharts的基础配置。
需要了解的主要配置:series xAxis yAxis grid tooltip title legend color
series– 系列列表。每个系列通过 type 决定自己的图表类型– 通俗的理解:图标数据,指定什么类型的图标,可以多个图表重叠。
xAxis:直角坐标系 grid 中的 x 轴
– boundaryGap: 坐标轴两边留白策略 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
yAxis:直角坐标系 grid 中的 y 轴
grid:直角坐标系内绘图网格。
title:标题组件
tooltip:提示框组件
legend:图例组件
color:调色盘颜色列表
stack:数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。
还有一个可以作为补充:Gallery
立即执行函数 为了防止变量污染,减少命名冲突,我们可以采用立即执行函数的写法,因为立即执行函数里的变量都是局部变量。 我们需要var很多option ,我们采用立即执行函数包起来就不会参生命名冲突了。
让图表跟随屏幕自适应 // 当我们浏览器缩放的时候,图表也等比例缩放window.addEventListener("resize", function() {// 让我们的图表调用 resize这个方法
GAN 网络通常用于生成图片数据,但是它也可以用于非图片数据,如音频、文本、时间序列等。对于非图片数据,通常需要将其转换为数值矩阵,再输入到 GAN 网络中进行训练。具体的方法因数据类型而异,需要根据具体情况进行设计。
例如,对于文本数据,可以使用词嵌入方法将每个词转换为对应的数值向量,然后作为 GAN 的输入。对于音频数据,可以使用声谱图或其他频域表示法将音频信号转换为图像数据,再输入到 GAN 网络中进行训练。
react antd From 表单 提交 场景:用modal对话的按钮提交from表单每一项
import { Button, Modal, Form, Input, DatePicker, Select, Col, Row, Popconfirm, Table } from 'antd'; //useRef 使用useRef import { useEffect, useState, useRef } from 'react'; import type { SelectProps } from 'antd'; import type { ColumnsType } from 'antd/es/table'; import { EditOutlined, DeleteOutlined, VerticalAlignTopOutlined, VerticalAlignBottomOutlined } from '@ant-design/icons'; function detailsDialog(props: any) { const [isModalOpen, setIsModalOpen] = useState(false);//弹窗显示隐藏 const [componentDisabled, setComponentDisabled] = useState<boolean>(true);//表单禁用 const fromRef = useRef<any>()//************************************* //点击确定 const handleOk = (value:any) => { fromRef.