当前位置: 首页 > news >正文

JavaWeb-JavaScript

JavaWeb-JavaScript

1,JavaScript简介

JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。

JavaScript 是用来控制网页行为的,它能使网页可交互;那么它可以做什么呢?如改变页面内容、修改指定元素的属性值、对表单进行校验等。

JavaScript 和 Java 是完全不同的语言,不论是概念还是设计,只是名字比较像而已。

JavaScript(简称:JS) 在 1995 年由 Brendan Eich 发明,并于 1997 年成为一部 ECMA 标准。ECMA 规定了一套标准 就叫 ECMAScript ,所有的客户端校验语言必须遵守这个标准,当然 JavaScript 也遵守了这个标准。ECMAScript 6 (简称ES6) 是最新的 JavaScript 版本(发布于 2015 年)。

2,JavaScript引入方式

JavaScript 引入方式就是 HTML 和 JavaScript 的结合方式。JavaScript引入方式有两种:

  • 内部脚本:将 JS代码定义在HTML页面中
  • 外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中

2.1 内部脚本

在 HTML 中,JavaScript 代码必须位于 <script></script> 标签之间

代码如下:

alert(数据) 是 JavaScript 的一个方法,作用是将参数数据以浏览器弹框的形式输出出来。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script>alert("hello js1");
</script>
</body>
</html>

效果如下:
在这里插入图片描述

提示

  • 在 HTML 文档中可以在任意地方,放置任意数量的script标签。如下图

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title><script>alert("hello js1");</script>
    </head>
    <body><script>alert("hello js1");
    </script></body>
    </html>
    <script>alert("hello js1");
    </script>
    
  • 一般把脚本置于 元素的底部,可改善显示速度

    因为浏览器在加载页面的时候会从上往下进行加载并解析。 我们应该让用户看到页面内容,然后再展示动态的效果。

2.2 外部脚本

第一步:定义外部 js 文件。如定义名为 demo.js的文件

项目结构如下:
在这里插入图片描述

demo.js 文件内容如下:

alert("hello js");

第二步:在页面中引入外部的js文件

在页面使用 script 标签中使用 src 属性指定 js 文件的 URL 路径。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script src="../js/demo.js"></script>
</body>
</html>

注意

  • 外部脚本不能包含 <script> 标签

    在js文件中直接写 js 代码即可,不要在 js文件 中写 script 标签

  • <script> 标签不能自闭合

    在页面中引入外部js文件时,不能写成 <script src="../js/demo.js" />

3,JavaScript基础语法

3.1 书写语法

  • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的

  • 每行结尾的分号可有可无

    如果一行上写多个语句时,必须加分号用来区分多个语句。

  • 注释

    • 单行注释:// 注释内容
    • 多行注释:/* 注释内容 */

    注意:JavaScript 没有文档注释

  • 大括号表示代码块

    下面语句大家肯定能看懂,和 java 一样 大括号表示代码块。

    if (count == 3) { alert(count); 
    } 
    

3.2 输出语句

js 可以通过以下方式进行内容的输出,只不过不同的语句输出到的位置不同

  • 使用 window.alert() 写入警告框

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><script>window.alert("hello js");//写入警告框
    </script>
    </body>
    </html>
    

    上面代码通过浏览器打开,我们可以看到如下图弹框效果
    在这里插入图片描述

  • 使用 document.write() 写入 HTML 输出

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><script>document.write("hello js 2~");//写入html页面
    </script>
    </body>
    </html>
    

    上面代码通过浏览器打开,我们可以在页面上看到 document.write(内容) 输出的内容
    在这里插入图片描述

  • 使用 console.log() 写入浏览器控制台

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><script>console.log("hello js 3");//写入浏览器的控制台
    </script>
    </body>
    </html>
    

    上面代码通过浏览器打开,我们可以在不能页面上看到 console.log(内容) 输出的内容,它是输出在控制台了,而怎么在控制台查看输出的内容呢?在浏览器界面按 F12 就可以看到下图的控制台

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ujp0zJxO-1673855392844)(assets/image-20210814190906202.png)]

3.3 变量

JavaScript 中用 var 关键字(variable 的缩写)来声明变量。格式 var 变量名 = 数据值;。而在JavaScript 是一门弱类型语言,变量可以存放不同类型的值;如下在定义变量时赋值为数字数据,还可以将变量的值改为字符串类型的数

var test = 20;
test = "张三";

js 中的变量名命名也有如下规则,和java语言基本都相同

  • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
  • 数字不能开头
  • 建议使用驼峰命名

JavaScript 中 var 关键字有点特殊,有以下地方和其他语言不一样

  • 作用域:全局变量

    {var age = 20;
    }
    alert(age);  // 在代码块中定义的age 变量,在代码块外边还可以使用
    
  • 变量可以重复定义

    {var age = 20;var age = 30;//JavaScript 会用 30 将之前 age 变量的 20 替换掉
    }
    alert(age); //打印的结果是 30
    

针对如上的问题,**ECMAScript 6 新增了 let 关键字来定义变量。**它的用法类似于 var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明。

例如:

{let age = 20;
}
alert(age); 

运行上面代码,浏览器并没有弹框输出结果,说明这段代码是有问题的。通过 F12 打开开发者模式可以看到如下错误信息
在这里插入图片描述

而如果在代码块中定义两个同名的变量,IDEA 开发工具就直接报错了

在这里插入图片描述

ECMAScript 6 新增了 const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。

在这里插入图片描述

我们可以看到给 PI 这个常量重新赋值时报错了。

3.4 数据类型

JavaScript 中提供了两类数据类型:原始类型 和 引用类型。

使用 typeof 运算符可以获取数据类型

alert(typeof age); 以弹框的形式将 age 变量的数据类型输出

原始数据类型:

  • number:数字(整数、小数、NaN(Not a Number))

    var age = 20;
    var price = 99.8;alert(typeof age); // 结果是 : number
    alert(typeof price);// 结果是 : number
    

    注意:NaN是一个特殊的number类型的值,后面用到再说

  • string:字符、字符串,单双引皆可

    var ch = 'a';
    var name = '张三'; 
    var addr = "北京";alert(typeof ch); //结果是  string
    alert(typeof name); //结果是  string
    alert(typeof addr); //结果是  string
    

    注意:在 js 中 双引号和单引号都表示字符串类型的数据

  • boolean:布尔。true,false

    var flag = true;
    var flag2 = false;alert(typeof flag); //结果是 boolean
    alert(typeof flag2); //结果是 boolean
    
  • null:对象为空

    var obj = null;alert(typeof obj);//结果是 object
    

    为什么打印上面的 obj 变量的数据类型,结果是object;这个官方给出了解释,下面是从官方文档截的图
    在这里插入图片描述

  • undefined:当声明的变量未初始化时,该变量的默认值是 undefined

    var a ;
    alert(typeof a); //结果是 undefined
    

3.5 运算符

JavaScript 提供了如下的运算符。大部分和 Java语言 都是一样的,不同的是 JS 关系运算符中的 =====

  • 一元运算符:++,–

  • 算术运算符:+,-,*,/,%

  • 赋值运算符:=,+=,-=…

  • 关系运算符:>,<,>=,<=,!=,==,===…

  • 逻辑运算符:&&,||,!

  • 三元运算符:条件表达式 ? true_value : false_value

3.5.1 ==和===区别

概述:

  • ==:

    1. 判断类型是否一样,如果不一样,则进行类型转换

    2. 再去比较其值

  • ===:js 中的全等于

    1. 判断类型是否一样,如果不一样,直接返回false
    2. 再去比较其值

代码:

var age1 = 20;
var age2 = "20";alert(age1 == age2);// true
alert(age1 === age2);// false

3.5.2 类型转换

上述讲解 == 运算符时,发现会进行类型转换,所以接下来我们来详细的讲解一下 JavaScript 中的类型转换。

  • 其他类型转为number

    • string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN

      将 string 转换为 number 有两种方式:

      • 使用 + 正号运算符:

        var str = +"20";
        alert(str + 1) //21
        
      • 使用 parseInt() 函数(方法):

        var str = "20";
        alert(parseInt(str) + 1);
        

      建议使用 parseInt() 函数进行转换。

    • boolean 转换为 number 类型:true 转为1,false转为0

      var flag = +false;
      alert(flag); // 0
      
  • 其他类型转为boolean

    • number 类型转换为 boolean 类型:0和NaN转为false,其他的数字转为true
    • string 类型转换为 boolean 类型:空字符串转为false,其他的字符串转为true
    • null类型转换为 boolean 类型是 false
    • undefined 转换为 boolean 类型是 false

    代码如下:

    // var flag = 3;
    // var flag = "";
    var flag = undefined;if(flag){alert("转为true");
    }else {alert("转为false");
    }
    

使用场景:

在 Java 中使用字符串前,一般都会先判断字符串不是null,并且不是空字符才会做其他的一些操作,JavaScript也有类型的操作,代码如下:

var str = "abc";//健壮性判断
if(str != null && str.length > 0){alert("转为true");
}else {alert("转为false");
}

但是由于 JavaScript 会自动进行类型转换,所以上述的判断可以进行简化,代码如下:

var str = "abc";//健壮性判断
if(str){alert("转为true");
}else {alert("转为false");
}

3.6 流程控制语句

JavaScript 中提供了和 Java 一样的流程控制语句,如下

  • if
  • switch
  • for
  • while
  • dowhile

3.6.1 if 语句

var count = 3;
if (count == 3) {alert(count);
}

3.6.2 switch 语句

var num = 3;
switch (num) {case 1:alert("星期一");break;case 2:alert("星期二");break;case 3:alert("星期三");break;case 4:alert("星期四");break;case 5:alert("星期五");break;case 6:alert("星期六");break;case 7:alert("星期日");break;default:alert("输入的星期有误");break;
}

3.6.3 for 循环语句

var sum = 0;
for (let i = 1; i <= 100; i++) { //建议for循环小括号中定义的变量使用letsum += i;
}
alert(sum);

3.6.4 while 循环语句

var sum = 0;
var i = 1;
while (i <= 100) {sum += i;i++;
}
alert(sum);

3.6.5 dowhile 循环语句

var sum = 0;
var i = 1;
do {sum += i;i++;
}
while (i <= 100);
alert(sum);

3.7 函数

函数(就是Java中的方法)是被设计为执行特定任务的代码块;JavaScript 函数通过 function 关键词进行定义。

3.7.1 定义格式

函数定义格式有两种:

  • 方式1

    function 函数名(参数1,参数2..){要执行的代码
    }
    
  • 方式2

    var 函数名 = function (参数列表){要执行的代码
    }
    

注意:

  • 形式参数不需要类型。因为JavaScript是弱类型语言

    function add(a, b){return a + b;
    }
    

    上述函数的参数 a 和 b 不需要定义数据类型,因为在每个参数前加上 var 也没有任何意义。

  • 返回值也不需要定义类型,可以在函数内部直接使用return返回即可

3.7.2 函数调用

函数调用函数:

函数名称(实际参数列表);

eg:

let result = add(10,20);

注意:

  • JS中,函数调用可以传递任意个数参数

  • 例如 let result = add(1,2,3);

    它是将数据 1 传递给了变量a,将数据 2 传递给了变量 b,而数据 3 没有变量接收。

4,JavaScript常用对象

JavaScript 提供了很多对象供使用者来使用。这些对象总共分类三类

  • 基本对象
    在这里插入图片描述

  • BOM 对象
    在这里插入图片描述

  • DOM对象

    DOM 中的对象就比较多了,下图只是截取部分
    在这里插入图片描述

4.1 Array对象

JavaScript Array对象用于定义数组

4.1.1 定义格式

数组的定义格式有两种:

  • 方式1

    var 变量名 = new Array(元素列表); 
    

    例如:

    var arr = new Array(1,2,3); //1,2,3 是存储在数组中的数据(元素)
    
  • 方式2

    var 变量名 = [元素列表];
    

    例如:

    var arr = [1,2,3]; //1,2,3 是存储在数组中的数据(元素)
    

    **注意:**Java中的数组静态初始化使用的是{}定义,而 JavaScript 中使用的是 [] 定义

4.1.2 元素访问

访问数组中的元素和 Java 语言的一样,格式如下:

arr[索引] =;

代码演示:

 // 方式一
var arr = new Array(1,2,3);
// alert(arr);// 方式二
var arr2 = [1,2,3];
//alert(arr2);// 访问
arr2[0] = 10;
alert(arr2)

4.1.3 特点

JavaScript 中的数组相当于 Java 中集合。数组的长度是可以变化的,而 JavaScript 是弱类型,所以可以存储任意的类型的数据。

例如如下代码:

// 变长
var arr3 = [1,2,3];
arr3[10] = 10;
alert(arr3[10]); // 10
alert(arr3[9]);  //undefined

上面代码在定义数组中给了三个元素,又给索引是 10 的位置添加了数据 10,那么 索引3索引9 位置的元素是什么呢?我们之前就介绍了,在 JavaScript 中没有赋值的话,默认就是 undefined

如果给 arr3 数组添加字符串的数据,也是可以添加成功的

arr3[5] = "hello";
alert(arr3[5]); // hello

4.1.4 属性

Array 对象提供了很多属性,如下图是官方文档截取的
在这里插入图片描述

而我们只讲解 length 属性,该数组可以动态的获取数组的长度。而有这个属性,我们就可以遍历数组了

var arr = [1,2,3];
for (let i = 0; i < arr.length; i++) {alert(arr[i]);
}

4.1.5 方法

Array 对象同样也提供了很多方法,如下图是官方文档截取的
在这里插入图片描述

而我们在课堂中只演示 push 函数和 splice 函数。

  • push 函数:给数组添加元素,也就是在数组的末尾添加元素

    参数表示要添加的元素

    // push:添加方法
    var arr5 = [1,2,3];
    arr5.push(10);
    alert(arr5);  //数组的元素是 {1,2,3,10}
    
  • splice 函数:删除元素

    参数1:索引。表示从哪个索引位置删除

    参数2:个数。表示删除几个元素

    // splice:删除元素
    var arr5 = [1,2,3];
    arr5.splice(0,1); //从 0 索引位置开始删除,删除一个元素 
    alert(arr5); // {2,3}
    

4.2 String对象

String对象的创建方式有两种

  • 方式1:

    var 变量名 = new String(s); 
    
  • 方式2:

    var 变量名 = "数组"; 
    

属性:

String对象提供了很多属性,下面给大家列举了一个属性 length ,该属性是用于动态的获取字符串的长度
在这里插入图片描述

函数:

String对象提供了很多函数(方法),下面给大家列举了两个方法。
在这里插入图片描述

String对象还有一个函数 trim() ,该方法在文档中没有体现,但是所有的浏览器都支持;它是用来去掉字符串两端的空格。

代码演示:

var str4 = '  abc   ';
alert(1 + str4 + 1);

上面代码会输出内容 1 abc 1,很明显可以看到 abc 字符串左右两边是有空格的。接下来使用 trim() 函数

var str4 = '  abc   ';
alert(1 + str4.trim() + 1);

输出的内容是 1abc1 。这就是 trim() 函数的作用。

trim() 函数在以后开发中还是比较常用的,例如下图所示是登陆界面
在这里插入图片描述

用户在输入用户名和密码时,可能会习惯的输入一些空格,这样在我们后端程序中判断用户名和密码是否正确,结果肯定是失败。所以我们一般都会对用户输入的字符串数据进行去除前后空格的操作。

4.3 自定义对象

在 JavaScript 中自定义对象特别简单,下面就是自定义对象的格式:

var 对象名称 = {属性名称1:属性值1,属性名称2:属性值2,...,函数名称:function (形参列表){},...
};

调用属性的格式:

对象名.属性名

调用函数的格式:

对象名.函数名()

接下来通过代码演示一下,让大家体验一下 JavaScript 中自定义对象

var person = {name : "zhangsan",age : 23,eat: function (){alert("干饭~");}};alert(person.name);  //zhangsan
alert(person.age); //23person.eat();  //干饭~

5,BOM

BOM:Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。

我们要操作浏览器的各个组成部分就可以通过操作 BOM 中的对象来实现。比如:我现在想将浏览器地址栏的地址改为 https://www.itheima.com 就可以通过使用 BOM 中定义的 Location 对象的 href 属性,代码: location.href = "https://itheima.com";

BOM 中包含了如下对象:

  • Window:浏览器窗口对象
  • Navigator:浏览器对象
  • Screen:屏幕对象
  • History:历史记录对象
  • Location:地址栏对象

下图是 BOM 中的各个对象和浏览器的各个组成部分的对应关系
在这里插入图片描述

BOM 中的 Navigator 对象和 Screen 对象基本不会使用,所以我们的课堂只对 WindowHistoryLocation 对象进行讲解。

5.1 Window对象

window 对象是 JavaScript 对浏览器的窗口进行封装的对象。

5.1.1 获取window对象

该对象不需要创建直接使用 window,其中 window. 可以省略。比如我们之前使用的 alert() 函数,其实就是 window 对象的函数,在调用是可以写成如下两种

  • 显式使用 window 对象调用

    window.alert("abc");
    
  • 隐式调用

    alert("abc")
    

5.1.2 window对象属性

window 对象提供了用于获取其他 BOM 组成对象的属性
在这里插入图片描述

也就是说,我们想使用 Location 对象的话,就可以使用 window 对象获取;写成 window.location,而 window. 可以省略,简化写成 location 来获取 Location 对象。

5.1.3 window对象函数

window 对象提供了很多函数供我们使用,而很多都不常用;下面给大家列举了一些比较常用的函数
在这里插入图片描述

setTimeout(function,毫秒值) : 在一定的时间间隔后执行一个function,只执行一次
setInterval(function,毫秒值) :在一定的时间间隔后执行一个function,循环执行

confirm代码演示:

// confirm(),点击确定按钮,返回true,点击取消按钮,返回false
var flag = confirm("确认删除?");alert(flag);

下图是 confirm() 函数的效果。当我们点击 确定 按钮,flag 变量值记录的就是 true ;当我们点击 取消 按钮,flag 变量值记录的就是 false
在这里插入图片描述

而以后我们在页面删除数据时候如下图每一条数据后都有 删除 按钮,有可能是用户的一些误操作,所以对于删除操作需要用户进行再次确认,此时就需要用到 confirm() 函数。
在这里插入图片描述

定时器代码演示:

setTimeout(function (){alert("hehe");
},3000);

当我们打开浏览器,3秒后才会弹框输出 hehe,并且只会弹出一次。

setInterval(function (){alert("hehe");
},2000);

当我们打开浏览器,每隔2秒都会弹框输出 hehe

5.2 History对象

History 对象是 JavaScript 对历史记录进行封装的对象。

  • History 对象的获取

    使用 window.history获取,其中window. 可以省略

  • History 对象的函数
    在这里插入图片描述

    这两个函数我们平时在访问其他的一些网站时经常使用对应的效果,如下图
    在这里插入图片描述

    当我们点击向左的箭头,就跳转到前一个访问的页面,这就是 back() 函数的作用;当我们点击向右的箭头,就跳转到下一个访问的页面,这就是 forward() 函数的作用。

5.3 Location对象

在这里插入图片描述

Location 对象是 JavaScript 对地址栏封装的对象。可以通过操作该对象,跳转到任意页面。

5.3.1 获取Location对象

使用 window.location获取,其中window. 可以省略

window.location.方法();
location.方法();

5.3.2 Location对象属性

Location对象提供了很对属性。以后常用的只有一个属性 href
在这里插入图片描述

代码演示:

alert("要跳转了");
location.href = "https://www.baidu.com";

在浏览器首先会弹框显示 要跳转了,当我们点击了 确定 就会跳转到 百度 的首页。

5.3.3 案例

需求:3秒跳转到百度首页

分析:

  1. 3秒跳转,由此可以确定需要使用到定时器,而只跳转一次,所以使用 setTimeOut()
  2. 要进行页面跳转,所以需要用到 location 对象的 href 属性实现

代码实现:

document.write("3秒跳转到首页..."); 
setTimeout(function (){location.href = "https://www.baidu.com"
},3000);

6,DOM

6.1 概述

DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。

DOM 其实我们并不陌生,之前在学习 XML 就接触过,只不过 XML 文档中的标签需要我们写代码解析,而 HTML 文档是浏览器解析。封装的对象分为

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

如下图,左边是 HTML 文档内容,右边是 DOM 树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7lUvyzsH-1673855392847)(assets/image-20210815231028430.png)]

作用:

JavaScript 通过 DOM, 就能够对 HTML进行操作了

  • 改变 HTML 元素的内容
  • 改变 HTML 元素的样式(CSS)
  • 对 HTML DOM 事件作出反应
  • 添加和删除 HTML 元素

DOM相关概念:

DOM 是 W3C(万维网联盟)定义了访问 HTML 和 XML 文档的标准。该标准被分为 3 个不同的部分:

  1. 核心 DOM:针对任何结构化文档的标准模型。 XML 和 HTML 通用的标准

    • Document:整个文档对象

    • Element:元素对象

    • Attribute:属性对象

    • Text:文本对象

    • Comment:注释对象

  2. XML DOM: 针对 XML 文档的标准模型

  3. HTML DOM: 针对 HTML 文档的标准模型

    该标准是在核心 DOM 基础上,对 HTML 中的每个标签都封装成了不同的对象

    • 例如:<img> 标签在浏览器加载到内存中时会被封装成 Image 对象,同时该对象也是 Element 对象。
    • 例如:<input type='button'> 标签在浏览器加载到内存中时会被封装成 Button 对象,同时该对象也是 Element 对象。

6.2 获取 Element对象

HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。

Document 对象中提供了以下获取 Element 元素对象的函数

  • getElementById():根据id属性值获取,返回单个Element对象
  • getElementsByTagName():根据标签名称获取,返回Element对象数组
  • getElementsByName():根据name属性值获取,返回Element对象数组
  • getElementsByClassName():根据class属性值获取,返回Element对象数组

代码演示:

下面有提前准备好的页面:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><img id="light" src="../imgs/off.gif"> <br><div class="cls">传智教育</div>   <br><div class="cls">黑马程序员</div> <br><input type="checkbox" name="hobby"> 电影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戏<br><script>//在此处书写js代码</script>
</body>
</html>
  1. 根据 id 属性值获取上面的 img 元素对象,返回单个对象

    var img = document.getElementById("light");
    alert(img);
    

    结果如下:
    在这里插入图片描述

    从弹框输出的内容,也可以看出是一个图片元素对象。

  2. 根据标签名称获取所有的 div 元素对象

    var divs = document.getElementsByTagName("div");// 返回一个数组,数组中存储的是 div 元素对象
    // alert(divs.length);  //输出 数组的长度
    //遍历数组
    for (let i = 0; i < divs.length; i++) {alert(divs[i]);
    }
    
  3. 获取所有的满足 name = 'hobby' 条件的元素对象

    //3. getElementsByName:根据name属性值获取,返回Element对象数组
    var hobbys = document.getElementsByName("hobby");
    for (let i = 0; i < hobbys.length; i++) {alert(hobbys[i]);
    }
    
  4. 获取所有的满足 class='cls' 条件的元素对象

    //4. getElementsByClassName:根据class属性值获取,返回Element对象数组
    var clss = document.getElementsByClassName("cls");
    for (let i = 0; i < clss.length; i++) {alert(clss[i]);
    }
    

6.3 HTML Element对象使用

HTML 中的 Element 元素对象有很多,不可能全部记住,以后是根据具体的需求查阅文档使用。

下面我们通过具体的案例给大家演示文档的查询和对象的使用;下面提前给大家准备好的页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><img id="light" src="../imgs/off.gif"> <br><div class="cls">传智教育</div>   <br><div class="cls">黑马程序员</div> <br><input type="checkbox" name="hobby"> 电影<input type="checkbox" name="hobby"> 旅游<input type="checkbox" name="hobby"> 游戏<br><script>//在此处写js低吗</script>
</body>
</html>

需求:

  1. 点亮灯泡

    此案例由于需要改变 img 标签 的图片,所以我们查询文档,下图是查看文档的流程:
    在这里插入图片描述

    代码实现:

    //1,根据 id='light' 获取 img 元素对象
    var img = document.getElementById("light");
    //2,修改 img 对象的 src 属性来改变图片
    img.src = "../imgs/on.gif";
    
  2. 将所有的 div 标签的标签体内容替换为 呵呵

    //1,获取所有的 div 元素对象
    var divs = document.getElementsByTagName("div");
    /*style:设置元素css样式innerHTML:设置元素内容*/
    //2,遍历数组,获取到每一个 div 元素对象,并修改元素内容
    for (let i = 0; i < divs.length; i++) {//divs[i].style.color = 'red';divs[i].innerHTML = "呵呵";
    }
    
  3. 使所有的复选框呈现被选中的状态

    此案例我们需要看 复选框 元素对象有什么属性或者函数是来操作 复选框的选中状态。下图是文档的查看

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hlVvjFa1-1673855392848)(assets/image-20210816000520457.png)]

    代码实现:

    //1,获取所有的 复选框 元素对象
    var hobbys = document.getElementsByName("hobby");
    //2,遍历数组,通过将 复选框 元素对象的 checked 属性值设置为 true 来改变复选框的选中状态
    for (let i = 0; i < hobbys.length; i++) {hobbys[i].checked = true;
    }
    

7,事件监听

要想知道什么是事件监听,首先先聊聊什么是事件?

HTML 事件是发生在 HTML 元素上的“事情”。比如:页面上的 按钮被点击鼠标移动到元素之上按下键盘按键 等都是事件。

事件监听是JavaScript 可以在事件被侦测到时**执行一段逻辑代码。**例如下图当我们点击 开灯 按钮,就需要通过 js 代码实现替换图片
在这里插入图片描述

再比如下图输入框,当我们输入了用户名 光标离开 输入框,就需要通过 js 代码对输入的内容进行校验,没通过校验就在输入框后提示 用户名格式有误!
在这里插入图片描述

7.1 事件绑定

JavaScript 提供了两种事件绑定方式:

  • 方式一:通过 HTML标签中的事件属性进行绑定

    如下面代码,有一个按钮元素,我们是在该标签上定义 事件属性,在事件属性中绑定函数。onclick 就是 单击事件 的事件属性。onclick='on()' 表示该点击事件绑定了一个名为 on() 的函数

    <input type="button" οnclick='on()’>
    

    下面是点击事件绑定的 on() 函数

    function on(){alert("我被点了");
    }
    
  • 方式二:通过 DOM 元素属性绑定

    如下面代码是按钮标签,在该标签上我们并没有使用 事件属性,绑定事件的操作需要在 js 代码中实现

    <input type="button" id="btn">
    

    下面 js 代码是获取了 id='btn' 的元素对象,然后将 onclick 作为该对象的属性,并且绑定匿名函数。该函数是在事件触发后自动执行

    document.getElementById("btn").onclick = function (){alert("我被点了");
    }
    

代码演示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><!--方式1:在下面input标签上添加 onclick 属性,并绑定 on() 函数--><input type="button" value="点我" onclick="on()"> <br><input type="button" value="再点我" id="btn"><script>function on(){alert("我被点了");}//方式2:获取 id="btn" 元素对象,通过调用 onclick 属性 绑定点击事件document.getElementById("btn").onclick = function (){alert("我被点了");}</script>
</body>
</html>

7.2 常见事件

上面案例中使用到了 onclick 事件属性,那都有哪些事件属性供我们使用呢?下面就给大家列举一些比较常用的事件属性

事件属性名说明
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开
  • onfocus 获得焦点事件。

    如下图,当点击了输入框后,输入框就获得了焦点。而下图示例是当获取焦点后会更改输入框的背景颜色。
    在这里插入图片描述

  • onblur 失去焦点事件。

    如下图,当点击了输入框后,输入框就获得了焦点;再点击页面其他位置,那输入框就失去焦点了。下图示例是将输入的文本转换为大写。
    在这里插入图片描述

  • onmouseout 鼠标移出事件。

  • onmouseover 鼠标移入事件。

    如下图,当鼠标移入到 苹果 图片上时,苹果图片变大;当鼠标移出 苹果图片时,苹果图片变小。
    在这里插入图片描述

  • onsubmit 表单提交事件

    如下是带有表单的页面

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><form id="register" action="#" ><input type="text" name="username" /><input type="submit" value="提交"></form><script></script>
    </body>
    </html>
    

    如上代码的表单,当我们点击 提交 按钮后,表单就会提交,此处默认使用的是 GET 提交方式,会将提交的数据拼接到 URL 后。现需要通过 js 代码实现阻止表单提交的功能,js 代码实现如下:

    1. 获取 form 表单元素对象。
    2. form 表单元素对象绑定 onsubmit 事件,并绑定匿名函数。
    3. 该匿名函数如果返回的是true,提交表单;如果返回的是false,阻止表单提交。
    document.getElementById("register").onsubmit = function (){//onsubmit 返回true,则表单会被提交,返回false,则表单不提交return true;
    }
    

8,表单验证案例

8.1 需求

在这里插入图片描述

有如下注册页面,对表单进行校验,如果输入的用户名、密码、手机号符合规则,则允许提交;如果不符合规则,则不允许提交。

完成以下需求:

  1. 当输入框失去焦点时,验证输入内容是否符合要求

  2. 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交

8.2 环境准备

下面是初始页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>欢迎注册</title><link href="../css/register.css" rel="stylesheet">
</head>
<body><div class="form-div"><div class="reg-content"><h1>欢迎注册</h1><span>已有帐号?</span> <a href="#">登录</a></div><form id="reg-form" action="#" method="get"><table><tr><td>用户名</td><td class="inputs"><input name="username" type="text" id="username"><br><span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span></td></tr><tr><td>密码</td><td class="inputs"><input name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密码格式有误</span></td></tr><tr><td>手机号</td><td class="inputs"><input name="tel" type="text" id="tel"><br><span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span></td></tr></table><div class="buttons"><input value="注 册" type="submit" id="reg_btn"></div><br class="clear"></form></div><script></script>
</body>
</html>

8.3 验证输入框

此小节完成如下功能:

  • 校验用户名。当用户名输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使 id='username_err' 的span标签显示出来,给出用户提示。
  • 校验密码。当密码输入框失去焦点时,判断输入的内容是否符合 长度是 6-12 位 规则,不符合使 id='password_err' 的span标签显示出来,给出用户提示。
  • 校验手机号。当手机号输入框失去焦点时,判断输入的内容是否符合 长度是 11 位 规则,不符合使 id='tel_err' 的span标签显示出来,给出用户提示。

代码如下:

//1. 验证用户名是否符合规则
//1.1 获取用户名的输入框
var usernameInput = document.getElementById("username");//1.2 绑定onblur事件 失去焦点
usernameInput.onblur = function () {//1.3 获取用户输入的用户名var username = usernameInput.value.trim();//1.4 判断用户名是否符合规则:长度 6~12if (username.length >= 6 && username.length <= 12) {//符合规则document.getElementById("username_err").style.display = 'none';} else {//不合符规则document.getElementById("username_err").style.display = '';}
}//1. 验证密码是否符合规则
//1.1 获取密码的输入框
var passwordInput = document.getElementById("password");//1.2 绑定onblur事件 失去焦点
passwordInput.onblur = function() {//1.3 获取用户输入的密码var password = passwordInput.value.trim();//1.4 判断密码是否符合规则:长度 6~12if (password.length >= 6 && password.length <= 12) {//符合规则document.getElementById("password_err").style.display = 'none';} else {//不合符规则document.getElementById("password_err").style.display = '';}
}//1. 验证手机号是否符合规则
//1.1 获取手机号的输入框
var telInput = document.getElementById("tel");//1.2 绑定onblur事件 失去焦点
telInput.onblur = function() {//1.3 获取用户输入的手机号var tel = telInput.value.trim();//1.4 判断手机号是否符合规则:长度 11if (tel.length == 11) {//符合规则document.getElementById("tel_err").style.display = 'none';} else {//不合符规则document.getElementById("tel_err").style.display = '';}
}

8.3 验证表单

当用户点击 注册 按钮时,需要同时对输入的 用户名密码手机号 ,如果都符合规则,则提交表单;如果有一个不符合规则,则不允许提交表单。实现该功能需要获取表单元素对象,并绑定 onsubmit 事件

//1. 获取表单对象
var regForm = document.getElementById("reg-form");//2. 绑定onsubmit 事件
regForm.onsubmit = function () {}

onsubmit 事件绑定的函数需要对输入的 用户名密码手机号 进行校验,这些校验我们之前都已经实现过了,这里我们还需要再校验一次吗?不需要,只需要对之前校验的代码进行改造,把每个校验的代码专门抽象到有名字的函数中,方便调用;并且每个函数都要返回结果来去决定是提交表单还是阻止表单提交,代码如下:

//1. 验证用户名是否符合规则
//1.1 获取用户名的输入框
var usernameInput = document.getElementById("username");//1.2 绑定onblur事件 失去焦点
usernameInput.onblur = checkUsername;function checkUsername() {//1.3 获取用户输入的用户名var username = usernameInput.value.trim();//1.4 判断用户名是否符合规则:长度 6~12var flag = username.length >= 6 && username.length <= 12;if (flag) {//符合规则document.getElementById("username_err").style.display = 'none';} else {//不合符规则document.getElementById("username_err").style.display = '';}return flag;
}//1. 验证密码是否符合规则
//1.1 获取密码的输入框
var passwordInput = document.getElementById("password");//1.2 绑定onblur事件 失去焦点
passwordInput.onblur = checkPassword;function checkPassword() {//1.3 获取用户输入的密码var password = passwordInput.value.trim();//1.4 判断密码是否符合规则:长度 6~12var flag = password.length >= 6 && password.length <= 12;if (flag) {//符合规则document.getElementById("password_err").style.display = 'none';} else {//不合符规则document.getElementById("password_err").style.display = '';}return flag;
}//1. 验证手机号是否符合规则
//1.1 获取手机号的输入框
var telInput = document.getElementById("tel");//1.2 绑定onblur事件 失去焦点
telInput.onblur = checkTel;function checkTel() {//1.3 获取用户输入的手机号var tel = telInput.value.trim();//1.4 判断手机号是否符合规则:长度 11var flag = tel.length == 11;if (flag) {//符合规则document.getElementById("tel_err").style.display = 'none';} else {//不合符规则document.getElementById("tel_err").style.display = '';}return flag;
}

onsubmit 绑定的函数需要调用 checkUsername() 函数、checkPassword() 函数、checkTel() 函数。

//1. 获取表单对象
var regForm = document.getElementById("reg-form");//2. 绑定onsubmit 事件
regForm.onsubmit = function () {//挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回falsevar flag = checkUsername() && checkPassword() && checkTel();return flag;
}

9,RegExp对象

RegExp 是正则对象。正则对象是判断指定字符串是否符合规则。

如下图是百度贴吧中的帖子
在这里插入图片描述

我们可以通过爬虫技术去爬取该页面源代码,然后获取页面中所有的邮箱,后期我们可以给这些邮箱地址发送推广的邮件。那么问题来了,如何才能知道页面内容中哪些事邮箱地址呢?这里就可以使用正则表达式来匹配邮箱。

在 js 中对正则表达式封装的对象就是正则对象。

9.1 正则对象使用

9.1.1 创建对象

正则对象有两种创建方式:

  • 直接量方式:注意不要加引号

    var reg = /正则表达式/;
    
  • 创建 RegExp 对象

    var reg = new RegExp("正则表达式");
    

9.1.2 函数

test(str) :判断指定字符串是否符合规则,返回 true或 false

9.2 正则表达式

从上面创建正则对象的格式中可以看出不管哪种方式都需要正则表达式,那么什么是正则表达式呢?

正则表达式定义了字符串组成的规则。也就是判断指定的字符串是否符合指定的规则,如果符合返回true,如果不符合返回false。

正则表达式是和语言无关的。很多语言都支持正则表达式,Java语言也支持,只不过正则表达式在不同的语言中的使用方式不同,js 中需要使用正则对象来使用正则表达式。

正则表达式常用的规则如下:

  • ^:表示开始

  • $:表示结束

  • [ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符

  • .:代表任意单个字符,除了换行和行结束符

  • \w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]

  • \d:代表数字字符: 相当于 [0-9]

量词:

  • +:至少一个

  • *:零个或多个

  • ?:零个或一个

  • {x}:x个

  • {m,}:至少m个

  • {m,n}:至少m个,最多n个

代码演示:

// 规则:单词字符,6~12
//1,创建正则对象,对正则表达式进行封装
var reg = /^\w{6,12}$/;var str = "abcccc";
//2,判断 str 字符串是否符合 reg 封装的正则表达式的规则
var flag = reg.test(str);
alert(flag);

9.3 改进表单校验案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>欢迎注册</title><link href="../css/register.css" rel="stylesheet">
</head>
<body><div class="form-div"><div class="reg-content"><h1>欢迎注册</h1><span>已有帐号?</span> <a href="#">登录</a></div><form id="reg-form" action="#" method="get"><table><tr><td>用户名</td><td class="inputs"><input name="username" type="text" id="username"><br><span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span></td></tr><tr><td>密码</td><td class="inputs"><input name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密码格式有误</span></td></tr><tr><td>手机号</td><td class="inputs"><input name="tel" type="text" id="tel"><br><span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span></td></tr></table><div class="buttons"><input value="注 册" type="submit" id="reg_btn"></div><br class="clear"></form></div><script>//1. 验证用户名是否符合规则//1.1 获取用户名的输入框var usernameInput = document.getElementById("username");//1.2 绑定onblur事件 失去焦点usernameInput.onblur = checkUsername;function checkUsername() {//1.3 获取用户输入的用户名var username = usernameInput.value.trim();//1.4 判断用户名是否符合规则:长度 6~12,单词字符组成var reg = /^\w{6,12}$/;var flag = reg.test(username);//var flag = username.length >= 6 && username.length <= 12;if (flag) {//符合规则document.getElementById("username_err").style.display = 'none';} else {//不合符规则document.getElementById("username_err").style.display = '';}return flag;}//1. 验证密码是否符合规则//1.1 获取密码的输入框var passwordInput = document.getElementById("password");//1.2 绑定onblur事件 失去焦点passwordInput.onblur = checkPassword;function checkPassword() {//1.3 获取用户输入的密码var password = passwordInput.value.trim();//1.4 判断密码是否符合规则:长度 6~12var reg = /^\w{6,12}$/;var flag = reg.test(password);//var flag = password.length >= 6 && password.length <= 12;if (flag) {//符合规则document.getElementById("password_err").style.display = 'none';} else {//不合符规则document.getElementById("password_err").style.display = '';}return flag;}//1. 验证手机号是否符合规则//1.1 获取手机号的输入框var telInput = document.getElementById("tel");//1.2 绑定onblur事件 失去焦点telInput.onblur = checkTel;function checkTel() {//1.3 获取用户输入的手机号var tel = telInput.value.trim();//1.4 判断手机号是否符合规则:长度 11,数字组成,第一位是1//var flag = tel.length == 11;var reg = /^[1]\d{10}$/;var flag = reg.test(tel);if (flag) {//符合规则document.getElementById("tel_err").style.display = 'none';} else {//不合符规则document.getElementById("tel_err").style.display = '';return flag;}//1. 获取表单对象var regForm = document.getElementById("reg-form");//2. 绑定onsubmit 事件regForm.onsubmit = function () {//挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回falsevar flag = checkUsername() && checkPassword() && checkTel();return flag;}
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4500425.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

关于“熵”家族的那些事

关于"熵"家族的那些事 在信息论与概率统计学中&#xff0c;熵&#xff08;entropy&#xff09;是一个很重要的概念。在机器学习与特征工程中&#xff0c;熵的概念也用得很多。这里简单总结&#xff0c;权当笔记。 0.熵 熵和概率十分相近&#xff0c;但又不同。概率是…...

Go语言进阶之路(六):内置JSON库和开源库gjson

Go语言内置了部分JSON函数&#xff0c;可以方便地在Go语言结构体实例和JSON字符串之间互相转换。这可比Java强多了。不过Go语言内置的json库功能比较鸡肋&#xff0c;只能在结构体和JSON之间相互转换&#xff0c;没办法满足在JSON字符串中进行条件匹配和搜索的功能。本文先介绍…...

统计学中的有效性和可靠性的概念

有效性何可靠性&#xff0c;还是很容易混淆的&#xff0c;要区别&#xff1a; 比如左边的是有效的&#xff1b;右边的就是无效的了。 可靠性&#xff0c;说的是多次检测&#xff0c;结果都偏向一致。 举个例子&#xff1a; 在上面这个图中&#xff0c;可以看的很清楚了...

路由策略原理及配置请查收......

路由协议在发布、接收和引入路由信息时&#xff0c;根据实际组网需求实施一些策略&#xff0c;以便对路由信息进行过滤和改变路由信息的属性&#xff0c;如&#xff1a; 1.控制路由的接收和发布 只发布和接收必要、合法的路由信息&#xff0c;以控制路由表的容量&#xff0c;…...

js 对象扁平化

const obj { name: GoodsStructure, path: /goodsStructure, hidden: false, redirect: noRedirect, component: Layout, alwaysShow: true, meta: { title: 产品结构清单, icon: tree, noCache: true, link: null, }, props: false, }; const getType (objParams: Object) &…...

二手书交易系统用例图

...

debug idea js,IDEA调试javaScript

谈起JavaScript调试&#xff0c;大家可能想到的就是FireFox下的FireBug&#xff0c;这毫无疑问&#xff0c;FireBug基本已经成为JavaScript开发人员的必备工具。在本文中&#xff0c;将向大家介绍如何在IDEA下远程调试JavaScript&#xff0c;毕竟能在IDE工具中直接设置断点&…...

lvs多级负载实验(4层+7层)

作者&#xff1a;蓝眼泪 lbc 负载均衡集群 分担服务的总体压力 hac 高可用集群 尽可能保障服务状态的可用性 hpc 高性能运算集群 提供单台服务器提供不了的计算能力 实验环境&#xff1a;6台虚拟机&#xff0c;centos7.9系统 IP地址是 192.168.29.11-16 vmware设置 仅主机…...

Japx 操作xml文档

Japx操作xml文档 xml文件 <?xml version"1.0" encoding"UTF-8"?> <persons><person id"1"><name>小刘</name><age>25</age><addr>兰州交通大学</addr></person><person id&…...

python代码示例表白-python示爱代码

广告关闭 2017年12月&#xff0c;云社区对外发布&#xff0c;从最开始的技术博客到现在拥有多个社区产品。未来&#xff0c;我们一起乘风破浪&#xff0c;创造无限可能。很多刚入门的盆友都有疑惑怎么把python代码转成可执行的exe&#xff1f; 这里行哥统一解决一下这个问题 1.…...

STM32 HAL库组成概述

STM32 HAL库概述 ## &#xff08;一&#xff09;HAL库设计思想什么是HAL(Hardware Abstraction Layer)? from 百度百科: 硬件抽象层是位于操作系统内核与硬件电路之间的接口层&#xff0c;其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平…...

CDN基于谷歌开源Katran四层负载均衡方案的应用 - 原理篇

CDN作为一种分布式缓存加速服务&#xff0c;对于访问量级大的区域&#xff0c;单个节点带宽建设一般可达百Gb量级&#xff0c;对外配置虚拟IP提供服务&#xff0c;节点内部需要通过多层负载均衡(LB)将请求分发到内部的若干台服务器进行处理。一般情况下&#xff0c;我们使用LVS…...

漫谈Android——最方便的HTTP工具okhttp

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、okhttp是什么&#xff1f;二、使用步骤1.引入库2.建立连接&#xff0c;请求数据2-1 GET请求2-2 POST请求总结前言 这段时间由于项目需求&#xff0c;一直在…...

罚函数法——外点罚函数法

罚函数法——外点罚函数法外点罚函数法算法算例matlab代码测试文件输出结果外点罚函数法 算法 算例 matlab代码 function [x,val]waidian1(x0,epsilon) m(1)1; c10;% c为递增系数 for k1:100em(k);x0bfgs(zg,dzg,x0);fzg(x0,e);if(f<epsilon)breakelsem(k1)c*m(k);end end…...

3大能力升级,云效+钉钉,让研发协作更「敏捷」

云效BizDevOps&#xff0c;始终致力于为企业提供一站式的产研数字化解决方案平台&#xff0c;帮助企业提升研发效能。 在信息技术高度发达的今天&#xff0c;依然有非常多的企业在研发管理和效能提升上遇到种种困难&#xff1a; 1.研发过程拉通对齐难&#xff1a; 在软件研发…...

ORA-00001: 违反唯一约束条件

&#xfeff;&#xfeff;使用impdp导入了一个数据库&#xff0c;但是应用在访问的时候总是提示&#xff1a; ORA-00001: 违反唯一约束条件 (TABLESPACE.SYS_C0040555) 在数据库中找到这个约束的表 SELECT constraint_name, table_name, r_owner, r_constraint_name FROM al…...

Hey~程序员,你的桌面风格该换了

最近&#xff0c;要做的项目越来越多&#xff0c;桌面上几乎全都是这样那样的文件&#xff0c;整个桌面看起来非常的乱。对于程序员来说&#xff0c;凌乱的桌面会影响我门做项目的速度&#xff0c;程序员就是要快才行&#xff0c;不快怎么能高效率呢&#xff1f; 正式介绍前&a…...

Python根据已知Y值求斜率和截距

from sklearn import linear_model import numpy as np reg linear_model.LinearRegression() #假设数据是data data[1.71490784773981,2.71490784773981,3.71490784773981,4.71490784773981] #对应序号是 range(len(data)) reg.fit (np.array(range(len(data))).reshape(-1,1…...

网络与VPC之动手实验

任务一&#xff1a;在阿里云上搭建和使用专有网络VPC 名称&#xff1a;VPC实验 网络&#xff1a;192.168.0.0/16 任务二&#xff1a;在VPC内创建两个交换机 交换机1&#xff1a;192.168.1.0/24 交换机2&#xff1a;192.168.2.0/24 任务三&#xff1a;在专有网络中创建ECS实例…...

【SpringBoot】错误处理流程分析

每日鸡汤 —— 一颗红豆为何想单挑这宇宙&#xff0c;都要怪你在我心中播了种 —— 五月天 约翰蓝侬 异常处理步骤流程 —— 第一步 —— 1. 执行目标方法&#xff0c;目标方法有任何异常&#xff0c;会被 被 catch&#xff0c;而且标志请求结束&#xff0c;catch后被 dispa…...

python常用代码大全-python代码大全

广告关闭 腾讯云双11爆品提前享&#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高满返5000元&#xff01; 例如&#xff1a;想了解python做数据可视化的工作。 我们可以从互联网找一些python做数据可视化的代码进行…...

python与r语言哪个好学_python和r哪个难一点

Python和r语言相对来说&#xff0c;r更难一些。R语言R是由统计学家开发的&#xff0c;它的出生就肩负着统计分析、绘图、数据挖掘的重要使命。因此在R的语言体系里&#xff0c;有非常多统计学的原理和知识。如果你具备一些统计背景&#xff0c;R会令你使用各类model和复杂的公式…...

【嵌入式实验2详解】STM32中断+DMA通信原理

文章目录一、STM32串口中断方式通信&#xff08;一&#xff09;中断方式&#xff08;二&#xff09;串口中断方式的特点&#xff08;三&#xff09;中断方式的接口函数&#xff08;四&#xff09;串口中断处理过程二、DMA通信&#xff08;一&#xff09;基本概念&#xff08;二…...

阿里图标在线引用步骤备忘

转载地址&#xff1a;https://blog.csdn.net/zsbgood/article/details/79512495...

优化独立站转化率时,我们到底要转化的是什么

优化独立站转化率时&#xff0c;我们到底要转化的是什么 基础概念是非常重要的&#xff0c;特别是在接触到一些新的领域时&#xff0c;对那些基础但重要概念有一个准确的把握&#xff0c;才能让你更加有底气和清晰。 但我们说独立站转化率优化时&#xff0c;你需要先知道什么…...

机器学习:支持向量机(SVM)

1&#xff0c;概述 1.1&#xff0c;概念 支持向量机&#xff08;SVM&#xff09;是一类按监督学习方式对数据进行二元分类的广义线性分类器&#xff0c;其决策边界是对学习样本求解的最大边距超平面&#xff0c;可以将问题化为一个求解凸二次规划的问题。与逻辑回归和神经网络…...

java实现 洛谷 P1056 排座椅

import java.util.Arrays; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap;public class Main {private static Scanner cin;private static int m;private static int n;private static int k;private static int l;private static int d;...

计算机操作系统可以看作是,计算机操作系统考研模拟题

《计算机操作系统考研模拟题》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《计算机操作系统考研模拟题(17页珍藏版)》请在人人文库网上搜索。1、计算机操作系统考研模拟题一、综合题 (50分)1. 某个采用段式存储管理的系统为装入主存的一个作业建立了段表SMT&#xf…...

MongoDB基本CURD命令

MongoDB的基本操作 选择和创建数据库 选择和创建数据库的语法格式&#xff1a; use 数据库名称如果数据库不存在则自动创建&#xff0c;例如&#xff0c;以下语句创建spitdb 数据库&#xff1a; use articledb查看有权限查看的所有的数据库命令 show dbs 或 show database…...

动态与静态获取元素

&#x1f335;知识点简介 静态获取&#xff08;querySelectorAll&#xff09;时&#xff0c;选出的所有元素的数组&#xff0c;不会随着文档操作而改变&#xff1b; 动态获取&#xff08;getElementById&#xff09;时&#xff0c;选出的所有元素的数组&#xff0c;会随着文档的…...

vpc经典网络区别_经典网络与VPC

1、VPC是什么&#xff1f;VPC(Virtual Private Cloud)是公有云上自定义的逻辑隔离网络空间&#xff0c;与用户在数据中心运行的传统网络相似&#xff0c;托管在VPC内的是用户在私有云上的服务资源&#xff0c;如云主机、负载均衡、云数据库等。用户可以自定义网段划分、IP地址和…...

opencv 图像深度depth的理解

我们在创建mat的时候&#xff0c;可以选择的CvType中有很多的选项 CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1 CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2 CV_8UC3 CV_8SC3 CV_16UC3 CV_16SC3 CV_8UC4…...

Task04分类问题

1、其实分类和回归的本质是一样的&#xff0c;都是对输入做出预测&#xff0c;其区别在于输出的类型。 分类问题&#xff1a;分类问题的输出是离散型变量&#xff0c;是一种定性输出。(预测明天天气是阴、晴还是雨) 回归问题&#xff1a;回归问题的输出是连续型变量&#xff0…...

区域等值面、热力图

热力图绘制方案echarts canvas高德地图kriging canvas代码分享讲讲项目背景&#xff0c;大屏专题图要绘制一个地区区域环境扩散效果&#xff0c;初步一开始感觉是一个热力图&#xff0c;后面经过描述确认不是&#xff0c;而是一个根据点位进行区域绘制的等值面 我以为的: 最…...

TCP和UDP端口号使用

https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers This is an incomplete list of notable ports. See the Service Name and Transport Protocol Port Number Registry of IANA for the complete list of assigned ports. Port TCP UDP DescriptionStatus 1...

火狐浏览器f12不显示firebug开发者模式问题总结

大家在用火狐浏览器获取页面元素的时候是不是经常用firebug开发者模式&#xff1f;但是我们发现一个问题&#xff0c;F12按下后并没有显示firebug开发者模式&#xff0c;检查了一下firebug和firepath插件发现都已经安装上了&#xff0c;怎么回事呢&#xff1f;原来我们的火狐浏…...

九 Go语言之数据格式

前面我们已经学习了一些简单的基本类型&#xff0c;现在学习复合类型&#xff0c;复合类型主要包括了数组&#xff0c;指针&#xff0c;切片等。现在先来学习数组. 一 数组 如果要存储班级里所有学生的数学成绩&#xff0c;应该怎样存储呢&#xff1f;可能有同学说&#xff0…...

java.sql.SQLIntegrityConstraintViolationException ORA-00001 违反唯一约束条件

Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (JDDS.PK_SHOP_MESSAGE) ### The error may involve com.shop.dao.itf.MessageMapper.insert-Inline ### The error occurred while setting parameters ###…...

java导出excel与word文档

导出excel与word 依赖如下 <!--导出excel文档,easyexcel的依赖&#xff1a;为了防止poi版本冲突--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version><exclusions&…...

画时序图工具

如何画时序图 推荐一个网站&#xff0c;waveform&#xff0c;非常好用。 当然&#xff0c;也有人用Visio。...

有限元分析-自适应网格技术

在进行有限元分析的时候&#xff0c;初始网格往往不是最优的&#xff0c;需要在解变化剧烈的地方加密网格&#xff0c;在解变化缓慢的地方稀疏网格&#xff0c;这时候就需要自动修改计算网格&#xff0c;称之为自适应网格技术。 自适应网格技术主要有三种方法&#xff1a; &a…...

matlab连接段端子怎么画,matlab在电路仿真PPT课件

《matlab在电路仿真PPT课件》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《matlab在电路仿真PPT课件(55页珍藏版)》请在人人文库网上搜索。1、,1,MATLAB在电路仿真 中的应用,1,.,2,本章学习目标,掌握电路系统模块集的使用 掌握电阻电路、电路的时域、稳态和频域分析…...

吴恩达深度学习笔记(29)-神经网络训练的方差和偏差分析

这一节我们学习在神经网络学习训练时出现的结果进行分析&#xff0c;偏差和方差的表现和优化&#xff0c;仔细看好咯~ 偏差&#xff0c;方差&#xff08;Bias /Variance&#xff09; 几乎所有机器学习从业人员都期望深刻理解偏差和方差&#xff0c;这两个概念易学难精&#xf…...

单播、多播(组播)和广播解释

https://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast/ 1. 单播&#xff08;Unicast&#xff09; 主机之间“一对一”的通讯模式 网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话&#xff0c;那么用网络技术的术语来描述就…...

脑波频率与我们的情绪关系

人脑都可以接收到哪些波段 在我们生活中的每一时刻不论在做什么&#xff0c;甚至睡觉时&#xff0c;大脑都会产生“电流脉冲”——“脑波”。脑波依频率可分为四大类&#xff1a;β波、α波、θ波及δ波。这些意识的组合&#xff0c;形成了一个人的行为、思考&#xff0c;情绪表…...

百度网盘下载速度慢的解决方式

百度网盘下载速度慢的解决方式使用场景解决方法结论使用场景 应该有很多小伙伴平时的文件、资源都会放到百度网盘上面&#xff0c;或者从别人网盘上找到各种资源&#xff0c;但是当你下载的时候你就发现百度云是以一种龟速的速度下载。每秒几十 KB&#xff0c;小的文件还好&am…...

虚拟手柄控制的小车 air3.4 Android IPones4s 下运行正常

素材和代码用到了away3d,awayphysics,starling等。转载于:https://www.cnblogs.com/DavidFan/archive/2012/10/25/2740321.html...

python画花朵代码_用Python绘制个花朵代码示例

用Python绘制个花朵代码示例及解析 #导入turtle模块 import turtle windowturtle.Screen() #创建一个新窗口用于绘图 babbageturtle.Turtle() #创建一个名字叫babbage的turtle对象 babbage.color("green","black") babbage.left(90) #使babbage左转90 babb…...

修改Context path和端口号

将以下代码放到pom.xml文件的<plugins></plugins>中 <plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.16.v20140903</version><configuration><conne…...

MyBatis级联查询和缓存配置

在需要进行安全保护的系统中&#xff0c;认证和授权需要反复查询用户、角色、资源授权等信息。这里以用户&#xff08;User&#xff09;、角色&#xff08;Role&#xff09;为例&#xff0c;介绍级联查询和Mybatis缓存配置方法。 一、数据模型 缓存类要求所有被序列化的对象必…...

Java 线程常用操作

继Java线程生命周期继续学习Java线程其他常用操作 线程的常用操作 设置线程名字:setName() 获取线程名称:getName() 线程唯一Id:getId() // 自定义线程名称 String threadName = "threadName"; // 构造方法方式 Thread thread = new Thread(() -> {System.out…...

虚拟手柄开发

最近项目中有一个虚拟手柄的实现需求。好在之前做过触屏控制&#xff0c;有一些基础。但还是花了一些时间&#xff0c;才做成满意的效果。 在这里简单记录下&#xff1a; 虚拟手柄&#xff1a;一、说明开发过程分为两部分&#xff1a;1、UI&#xff1a;在手机屏幕上绘制游戏手柄…...

偶遇的webshell,那得冲一波

今天偶遇一个webshell&#xff0c;事件起因是这样的 然后通过交谈&#xff0c;我发现了个webshell 界面不错呀&#xff0c;那得冲他。 找这个群友要了波密码&#xff0c;登录上去拿到这个webshell的源代码 呃&#xff0c;你跟我认真的&#xff1f;这种webshell我已经是见过…...

OpenCV contrib编译及问题解决

OpenCV是一个开源发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。OpenCV中包括很多类型的算法包&#xff0c;还有第三方及专利算法。在实际工程中&#xff0c;经常需要根据特性定制库&#xff0c;这就需要自行编译O…...

linux音乐服务器mpd,在Linux系统中安装配置mpd和ncmpcpp的方法

本文介绍在Linux系统(基于Ubuntu和Arch Linux)中安装配置mpd和ncmpcpp的方法。简介音乐播放器守护程序(MPD)是一个灵活&#xff0c;功能强大的服务器端应用程序&#xff0c;用于播放音乐&#xff0c;通过插件和库&#xff0c;它可以播放各种声音文件&#xff0c;同时由其网络协…...

外点罚函数法的MATLAB实现,一、非线性规划问题的几种求解方法1罚函数法(外点法).ppt...

您所在位置&#xff1a;网站首页 > 海量文档&nbsp>&nbsp高等教育&nbsp>&nbsp微积分一、非线性规划问题的几种求解方法1罚函数法(外点法).ppt58页本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传…...

md的定时

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...

h5页面如何切图_切图与CSS入门

不会CSS的后端不是好的程序猿JS 对于后端小伙伴来说不算难点&#xff0c;能够顺手的使用&#xff0c;涉及到 CSS 就会有点懵逼了。为了让后端同事更愉快的玩转 CSS&#xff0c;做一个好的切图仔&#xff0c;下面我将讲一些如何提升自己的 CSS 技巧&#xff0c;帮助后端同事快速…...

unity导出android,可以显示出MMD模型,但是不能播放动作。求解答

这是用&#xff55;&#xff4e;&#xff49;&#xff54;&#xff59;结合&#xff2d;&#xff2d;&#xff24;插件&#xff0c;做出来的效果。采用了&#xff2d;&#xff2d;&#xff24;的模型和&#xff2d;&#xff2d;&#xff24;的动作数据。我使用的是&#xff25;…...

利用 MATLAB 编程实现罚函数法法求解约束最优化问题

本文章包含以下内容&#xff1a; 1、画出外罚函数法的算法流程图&#xff1b; 2、MATLAB 编写外罚函数法求解无约束优化问题的函数&#xff0c;无约束子问题用 精确一维搜索的拟 Newton 法&#xff08;函数式 M 文件&#xff0c;精度设为 epson 可调&#xff09;&#xff1b;…...

英语语法汇总(6.副词)

副词概说 副词修饰动词&#xff0c;形容词&#xff0c;其他副词&#xff0c;介词短语&#xff0c;进行补充说明 副词的常见构成形式 形容词ly &#xff0c;最常见的副词构成形式 patient -patiently 有些ly结尾的词&#xff0c;不一定是副词&#xff0c;在名词后加ly,构成形…...

英语语法---副词详解

英语语法 单词-副词详解 1. 副词的定义 2. 副词的分类 2.1 时间副词 2.2 地点副词 2.3 方式副词 2.4 程度副词 2.5 疑问副词 2.6 关系副词 2.7 连接副词 2.8 表顺序副词 2.9 频率副词 单词-副词详解 本章主要目的&#xff1a;了解副词定义及分类 1. 副词的定义 副…...

English语法_副词排序

方式 / 程度 地点 频率 时间1> very beautifully2> will travel1> very beautifully Harden sang very beautifully on the stage last night. Harden昨晚在舞台上唱得很动听。 very &#xff1a; 程度副词 beautifully &#xff1a; 方式副词&#xff0c; 动听&am…...

正确地使用“respectively“

“respectively”是一个副词&#xff0c;意思是“分别&#xff0c;各自&#xff1b;顺序为&#xff1b;依次为( ‘separately and in the order already mentioned’)。它用于描述引用前一个语句的两个或多个项。 例如&#xff1a;“The times until uptake ofthe modified, un…...

副词的种类

在句中修饰行为或状态特征的词称为副词。 副词 根据副词与句子的关系&#xff0c;英语中的副词可分为adjunct&#xff08;附属&#xff09;、disjunct&#xff08;分离&#xff09;、conjunct&#xff08;连接&#xff09;三类副词。 adjunct&#xff08;位于句子内部的副词…...

English trip V1 - 9.Do you Ever Say Never? 你有没有说永远不会? Teacher:Lamb Key: Adverbs of frequency (频率副词

In this lesson you will learn to describe what you do at home. 在本课中&#xff0c;您将学习如何描述您在家中所做的事情。 课上内容&#xff08;Lesson&#xff09; breakfast 早餐 I usually eat breakfast in the morning lunch 午餐 She usually eats lunch in the …...

About Daily Routines(频率副词)

My days are very busy. I usually get up at six oclock, but on the weekend I occasionally get up later, at seven oclock. I leave for work at 7:30. I often make dinner when I get home from work at five oclock. After dinner, I always do the dishes. I hat...

English语法_频率副词

Frequency1> 分类1.1> 定频副词1.2> 变频副词2> 频率副词位置2.1> be动词后2.2> 实义动词前2.3> 简答句或简述句&#xff0c;放在be动词或助动词 前1> 分类 表示动作发生的次数或频率的副词&#xff1b; 1.1> 定频副词 yearlyannuallymonthly每年…...

level1 -- unit 3 - 频率副词

频率副词 neversometimesusuallyalways never 从不 sometimes 有时 usually 通常 always 总是频率排名(从最不到最经常)&#xff1a; never > sometimes > usually > always 频率副词位于实义动词之前频率副词不影响动词的单复数形式&#xff08;意思还是受主语的人称…...

频率副词always,usually,often...用法_16

目录 频率副词 频率副词在否定句和疑问句 副词"how"、"often"和"ever"的使用 我们将学习频率副词。频率副词的作用是表明我们做某事或发送某事的频率。 频率副词 我们一起来看一下最常见的单词&#xff0c;从表达高频率的到表达低频率的&am…...

Chrome V3版开发教程使用Vue 3.x+Ant构建项目

简介 ​ Google在2023年将会遗弃V2版本&#xff0c;而目前在CSDN平台上的大部分Chrome插件的开发教程都是基于V2版本的&#xff0c;V3版本和V2的版本上还是有很大的区别&#xff0c;就比如manifest.json中的写法差距就很大&#xff0c;所以对于即将要开发Chrome插件的小伙伴来…...

c语言圆周率小数点后500万位,圆周率500位

派的小数点后500位是&#xff1a;π 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679 82148 08651 32823 06647 09384 46095 50582 23172 53594 08128 48111 74502 84102 70193 85211 05559 644…...

matlab中pi值是多少,如何利用MATLAB计算圆周率

圆周率是圆的周长与直径的比值&#xff0c;一般用希腊字母π表示&#xff0c;是一个在数学及物理学中普遍存在的数学常数。π也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。MATLAB中的表达式pi返回值最接近基本常数π的浮点数。但是要…...

php 圆周率多少位,圆周率1500多位

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼玉龙软件 www.yulongsoft.com 计算 php代码Pi 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270…...

c语言圆周率小数点后500万位,圆周率小数点后500位数字是多少

圆周率2500位圆周率500位3.14159 26535 89793 23846 2643383279 50288 41971 69399 3751058209 74944 59230 78164 0628620899 86280 34825 34211 7067982148 08651 32823 06647 0938446095 50582 23172 53594 0812848111 74502 84102 70193 8521105559 64462 29489 54930 3819…...

【vue脚手架安装-@vue/vli】

vue脚手架安装-vue/vli全局安装create-react-app下载慢切换至taobao镜像创建项目运行项目查看安装版本全局安装create-react-app npm i -g vue/cli下载慢切换至taobao镜像 使用nrm,nrm 是一个 npm 源管理器&#xff0c;允许你快速地在 npm源间切换。 1.安装nrmnpm i -g nrm 2…...

软件开发中的冲突

以下是转的有关项目冲突的内容。感谢原作者。 最近参与一电商项目&#xff0c;遇到一项目冲突的案例&#xff0c;感慨颇多&#xff0c;故借此谈一下项目的冲突管理。 部门主管A&#xff1a;为人谦和&#xff0c;有威望 项目经理B&#xff1a;为人直率&#xff0c;说话较直&…...

装修--避坑--美缝知识

选美缝&#xff1f;还是环氧彩砂&#xff1f; 卫生间做环氧彩砂&#xff0c;结石耐用&#xff0c;砖缝有水不受影响&#xff0c;还有一定防水性能其他空间做美缝&#xff0c;好打理&#xff0c;而且还便宜不差钱&#xff0c;除了厨房&#xff0c;全屋做环氧彩砂 美缝选什么颜…...

RPC与Restful的区别

RPC与Restful的区别 面对对象不同&#xff1a; RPC 更侧重于动作。 REST 的主体是资源。 RESTful 是面向资源的设计架构&#xff0c;但在系统中有很多对象不能抽象成资源&#xff0c;比如登录&#xff0c;修改密码等而 RPC 可以通过动作去操作资源。所以在操作的全面性上 RPC…...

为什么需要rpc?

关于rpc的一点疑惑、为什么需要rpc? rpc的目的 就是通过像调用本地服务一样远程调用另一台服务器上的服务来完成需求。 我的理解就是调用这个远程服务的目的就是获取一个返回结果&#xff0c;然后客户端拿到这个结果再做相关的操作&#xff0c;那么问题来了&#xff0c;为什…...

http接口和RPC接口区别

http接口是在接口不多、系统与系统交互较少的情况下&#xff0c;解决信息孤岛初期常使用的一种通信手段&#xff1b;优点就是简单、直接、开发方便。利用现成的http协议 进行传输。但是如果是一个大型的网站&#xff0c;内部子系统较多、接口非常多的情况下&#xff0c;RPC框架…...

以太坊可用RPC节点列表

对于个人开发者来说&#xff0c;搭建节点的成本是比较大的&#xff0c;幸运的是&#xff0c;我们有一些开放的节点可以选择。 一些RPC节点可能由于不可预知的原因&#xff0c;间歇性的无法访问&#xff0c;大家使用前可以使用以下命令测试一下RPC节点的连通性&#xff1a; cu…...

你说说RPC的一个请求的流程是怎么样的?

前言 面试的时候经常被问到RPC相关的问题&#xff0c;例如&#xff1a;你说说RPC实现原理、让你实现一个RPC框架应该考虑哪些地方、RPC框架基础上发起一个请求是怎样一个流程等等。所以这次我就总结一波RPC的相关知识点&#xff0c;提前说明一下&#xff0c;本篇文章只是为了回…...

什么是RPC Remote Procedure Call 翻译成中文就是远程过程调用

如何科学的解释RPC 说起RPC&#xff0c;就不能不提到分布式&#xff0c;这个促使RPC诞生的领域。 假设你有一个计算器接口&#xff0c;Calculator&#xff0c;以及它的实现类CalculatorImpl&#xff0c;那么在系统还是单体应用时&#xff0c;你要调用Calculator的add方法来执…...

基于 HTTP 的 JSON-RPC

https://www.jsonrpc.org/historical/json-rpc-over-http.htmlhttps://www.jsonrpc.org/historical/json-rpc-over-http.html 日期&#xff1a;2008-1-15网站&#xff1a;http://groups.google.com/group/json-rpc作者&#xff1a;Jeffrey Damick 和 JSON-RPC 组 - json-rpc -…...

远程过程调用RPC 2:RPC思想与RPC框架

RPC思想与RPC框架RPC思想组成部分RPC框架完整的RPC框架RPC调用关键点RPC框架分类对比RPC和RESTREST主要原则对比RPC思想 上一篇笔记&#xff1a;远程过程调用RPC 1&#xff1a;举例理解通过一个例子理解了什么是RPC&#xff0c;本文继续学习RPC的一些理论内容。 这个例子帮助…...

RPC入门

什么是rpc? RPC&#xff08;Remote Procedure Call&#xff09;— 远程过程调用&#xff0c;它是一种通过网络从远程计算机程序上请求服务&#xff0c;而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在&#xff0c;如TCP或UDP&#xff0c;为通信程序之间携带信…...

浏览器-RPC

一、RPC全称、或者说翻译过来是&#xff1a;一种基于网格环境的远程过程调用系统的设计与分析既然是远程调用&#xff0c;那就得彼此通信了。 二、如何通信&#xff1a;1电脑本地内存中相互通信 -----》不现实&#xff0c;难度略微有点大2http ---------》 服务器无法主动向浏…...

1-货物摆放

题目描述小蓝有一个超大的仓库&#xff0c;可以摆放很多货物。现在&#xff0c;小蓝有 nn 箱货物要摆放在仓库&#xff0c;每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向&#xff0c;每箱货物的边都必须严格平行于长、宽、高。小蓝希望所有的货物最终摆成…...

php rpc安全,PHPRPC

说明:PHPRPC 有很多种特性 轻量级&#xff0c;安全&#xff0c;跨国际&#xff0c;跨语言 跨平台跨环境它支持php java js .net Delphi asp python等各种语言&#xff0c;而且在官方网站上面有各种语言的帮助手册 网址是&#xff1a;www.phprpc.org/zh_CN/下面简单的事例说明去…...

RPC框架相关笔记

分布式框架整个流程&#xff1a; 前端页面--> controller -- > service --> mapper -->(pojo类&#xff0c;也就是实体类Entity&#xff0c;通常要实现序列化 implements Serializable)-->数据库 根据开发规则&#xff0c;类名或者接口名 &#xff0c;后边加 …...

RPC和HTTP

一、为什么需要RPC&#xff0c;而不是简单的HTTP接口&#xff1f; RPC&#xff08;即Remote Procedure Call&#xff0c;远程过程调用&#xff09;&#xff0c;主要是基于TCP/IP协议&#xff1b;而HTTP服务主要是基于HTTP协议的。我们都知道HTTP协议是在传输层协议TCP之上的&am…...

RPC就好像是谈一场异地恋

RPC作为目前的主流技术之一&#xff0c;它打破了某一项任务所需的计算资源只能靠一台计算机来实现的固有想法&#xff0c;对分布式计算、微服务等领域都有着重要而深远的影响。 从20世纪80年代至今近四十年的时间内&#xff0c;由RPC衍生出来的技术非常多&#xff0c;包括很多…...

一些订题总结

修建城墙 Z 2494 有 L 和 T 两个部分分。 对于 L &#xff0c;建立二分图求最小点覆盖的方法可能比较典。 一个点是&#xff0c;如何输出最小点覆盖的方案&#xff0c;对于与 S 相连的&#xff0c;取走不到的&#xff0c;与 T 相连的&#xff0c;取走的到的。 然后是 T 。 首先…...

Scrapy选择器Selector

当抓取网页时&#xff0c;常见的任务是从HTML源码中提取数据。现有的一些库可以达到这个目的&#xff1a; BeautifulSouplxml Scrapy 提取数据有自己的一套机制。它们被称作选择器(seletors)&#xff0c;因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML 文件中的某个…...

d3.js 选择器

如发现翻译不当或有其他问题可以通过以下方式联系译者:邮箱&#xff1a;zhang_tianxusina.comQQ群&#xff1a;D3.js:437278817&#xff0c;大数据可视化&#xff1a;436442115Github小组&#xff1a;VisualCrew 引用 原文 一个选择就是从当前文档中抽取的一组元素。D3使用CSS3…...

git的安装与配置用户名,查看用户名

目录git一、安装和配置&#xff08;1&#xff09;&#xff1a;Git操作原因&#xff1a;&#xff08;2&#xff09;&#xff1a;Git安装&#xff1a;&#xff08;3&#xff09;&#xff1a;Git初始化和配置用户名&#xff1a;(4)git生成的.git文件的介绍二、git的操作流程本地仓…...

java基于go-cqhttp实现qq机器人

开始前准备&#xff1a; 1. java-1.8:jdk1.8及环境配置&#xff0c;不知道直接百度安装。 2. maven: maven环境安装配置&#xff0c;不知道直接百度安装。 3. go-cqhttp: 官方下载地址windows 官方下载地址linux 百度云下载&#xff1a;702v 4. ffmpeg: 发送短视频必要支持…...

UnityEditor编辑器扩展

1.通用 1.控件属性 - GUILayoutOption GUILayout.Width(float width) - 设置控件的宽度GUILayout.Height(float height) - 设置控件的高度GUILayout.MinWidth(float width) - 设置控件的最小宽度GUILayout.MinHeight(float height) - 设置控件的最小高度GUILayout.MaxWidth(f…...

python中如何优雅地使用多进程(1)

众所周知&#xff0c;python中存在GIL锁&#xff0c;导致同一时间只能有一个线程在CPU上运行&#xff0c;而且是单个CPU上运行&#xff0c;不管你的CPU有多少核数。然而如今大多数的个人电脑或者服务器都是多核CPU&#xff0c;如果想要充分地使用多核CPU的资源&#xff0c;在py…...

linux cp过程的查看,linux 常用命令

一、命令1、作用&#xff1a;为了实现某功能的特定的文件或程序2、种类&#xff1a;内部命令、外部命令内部命令存放于shell解释器之内外部命令存放于shell解释器之外&#xff0c;以单独的文件的形式存在3、格式&#xff1a;命令 选项 参数*- 简写-- 全程多个选项可以写到一起 …...

URP管线下如何查看Overdraw

1&#xff09;URP管线下如何查看Overdraw ​2&#xff09;Lua局部函数调用回收机制 3&#xff09;AssetBundle如何使用二次压缩算法缩减包体 4&#xff09;URP的三角形面片数统计不准确 这是第262篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题…...

多类分类器

# 多类分类器 from sklearn.datasets import fetch_openml minst fetch_openml(mnist_784,version1) X,y minst["data"],minst["target"] X_train,X_test,y_train,y_test X[:60000],X[60000:],y[:60000],y[60000:] some_digit X[0] 多类分类器&#…...

虚拟办公室,产业创新与转型升级

虚拟办公室&#xff0c;这个几十年前起源于欧美日本的新模式&#xff0c;随着中国商业市场的发展&#xff0c;为更多创业初期的自由职业者和小型公司提供服务的同时&#xff0c;不断生根发芽&#xff0c;逐渐形成独特的新行业生态。突发性重大问题激起的人类能动性&#xff0c;…...

虚拟打印机开发报告

虚拟打印机开发报告 第一章 打印机体系结构和虚拟打印机 Windows打印体系结构 windows xp 的打印体系结构是由打印假脱机和一系列打印驱动程序组成。应用程序通过设备无关的Win32打印和GDI(图形设备接口)函数&#xff0c;创建打印作业并将其发送到不同的设备&#xff0c;如…...

UI自动化测试模块与环境管理全面打通,MeterSphere开源持续测试平台v2.6.0发布

2023年1月16日&#xff0c;MeterSphere一站式开源持续测试平台正式发布v2.6.0版本。 在这一版本中&#xff0c;MeterSphere的UI自动化测试模块与环境管理全面打通&#xff0c;更好地满足了用户一个脚本同时跑多个环境的测试需求。在测试跟踪模块中&#xff0c;测试计划关联测试…...

YOLO家族系列模型的演变:从v1到v8(下)

昨天的文章中&#xff0c;我们回顾了 YOLO 家族的前 9 个架构。本文中将继续总结最后3个框架&#xff0c;还有本月最新发布的YOLO V8. YOLOR Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao “You Only Learn One Representation: Unified Network for Multiple Tasks”202…...

在线图片去底工具

http://www.aigei.com/bgremover/...

css背景图片置于底部~~~在底部添加背景图

background-image: url(http://dodui.oss-cn-shenzhen.aliyuncs.com/20201119homefishing/ztmd.png);background-repeat: no-repeat;background-size: 100% auto;background-position: 0 100%;这样就可以很好的将一个图片置于底部。...

在线工具:图片一键去底(背景透明化)

经常用到的图片背景透明化工具&#xff0c;可以轻松实现图片的一键去底保存。 工具地址&#xff1a;图片去底工具_在线工具-JerryCoding个人博客 使用指导&#xff1a; 1、选择背景图&#xff0c;打开要处理的图片。 2、在图片上点击要删除的背景位置即可。 3、点击下载图片…...

CSS - 去除图片img底侧空白缝隙

1. 图片底部有空隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>img { /* vertical-align: middle;*/ /* display: block;*/}div {border: 2px soli…...

CSS图片底侧空白缝隙解决方案

前言 在学习CSS的过程中&#xff0c;我们经常会遇到图片底侧存在空白缝隙的问题。这篇文章提供了解决方案。 代码示例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA…...

在线图片去底工具 - 将纯色背景的图片转换为背景透明的图片

发现一个好用的工具&#xff0c;在线图片去底工具 - 将纯色背景的图片转换为背景透明的图片 [urlhttp://www.2gei.com/bgremover/]在线图片去底工具[/url]...

十五天学会Autodesk Inventor,看完这一系列就够了(一),前言—介绍及区别

众所周知&#xff0c;Autocad是一款用于二维绘图、详细绘制、设计文档和基本三维设计&#xff0c;现已经成为国际上广为流行的绘图工具。Autodesk Inventor软件也是美国AutoDesk公司推出的三维可视化实体模拟软件&#xff0c;有如下两大优势&#xff1a; 1. 使用Autodesk Inve…...

先打造ip

把ip打造起来&#xff0c;后面可以做的事情很多&#xff0c;做知识付费&#xff0c;接广告&#xff0c;直播卖货等等&#xff0c;这是一个长久的战略&#xff0c;而且是最值得去做的&#xff0c;找到一个领域&#xff0c;去打造ip&#xff0c;美食&#xff0c;育儿&#xff0c;…...

我教你两招你也可以,打造个人IP就是个骗局?纯属忽悠?

你想要通过做自媒体赚钱&#xff1f;那么打造个人ip就是必不可少的一个步骤。 你的个人ip打造对了吗&#xff1f;女扮男装&#xff1f;秀腿&#xff1f;秀身材&#xff1f;等等&#xff0c;你做的有这几类吗&#xff1f; 这些领域虽然在短期内可以帮你获得并积累不错的流量&a…...

我赢助手详解:抖音变现目前流行的是七种方式之直播变现和Ip变现

抖音变现目前流行的是七种方式&#xff0c;电商卖货、广告营销、内容付费、品牌导流、直播变现、IP变现、社群营销。 今天我们来说一说直播变现模式。直播变现&#xff0c;他有两种模式&#xff1a; 第一种就是直接在直播中去带货&#xff0c;然后就转化。第二种就是获得打赏。…...

知识付费经典变现模式,精英IP矩阵化

这是目前自媒体上最牛的知识付费的变现模式&#xff0c;你见到的大部分的成气候的知识博主、情感博主、还有一些工作室基本都这么玩的&#xff0c;它的名字叫做精英矩阵模式&#xff0c;如果未来你打算在自媒体上变现的话&#xff0c;给自己几分钟静下心听我说一说&#xff0c;…...

抖音怎么变现赚钱?揭秘抖音拍短视频月入10万+

抖音怎么变现赚钱&#xff1f;普通用户如何利用抖音APP赚钱&#xff1f;我们知道抖音在目前移动市场中的占据着非常重要的市场份额&#xff0c;空闲时刷刷抖音几乎成为了网友日常的生活的一部分。随着它的火热程度&#xff0c;越来越多人涌入&#xff0c;当然也就有部分网友想要…...

字节跳动商业变现Java后端实习面经

网友投稿 一面&#xff08;04-02&#xff09;40min 1、自我介绍 2、算法题&#xff1a;给定一个排列&#xff0c;求它的下一个排列&#xff0c;[1,2,3] -> [1,3,2] &#xff1b;[3,2,1]->[1,2,3] 3、说一下netty的主要组件&#xff0c;有什么作用&#xff1f; 4、直接…...

抓包逆向神器Charles推荐,https接口了无秘密

业余时间想找个免费的智能AI接口用&#xff0c;体验了几款插件真不错&#xff0c;比如Bito插件和IDE神器Cursor&#xff0c;但不知道他们的后台接口。想着看看他们的接口&#xff0c;不用说肯定是https加密的。http包透明传输还好&#xff0c;但是大多数是https加密传输的&…...

什么品牌的蓝牙耳机适合学生党用?学生党高性价比国产蓝牙耳机推荐

最近看到很多网友问什么品牌的蓝牙耳机适合学生党用&#xff1f;现在的蓝牙耳机品牌越来越多&#xff0c;适合学生党用的蓝牙耳机品牌也不少。下面&#xff0c;我来给大家推荐几款适合学生党的国产高性价比蓝牙耳机&#xff0c;可以当个参考。 一、南卡小音舱蓝牙耳机 参考价…...

C语言指针链表

C语言指针链表是一种非常常见的数据结构&#xff0c;它可以用于在程序中存储和操作一系列相关数据&#xff0c;包括但不限于整数、字符串、结构体等类型。下面我们将介绍如何使用C语言指针链表&#xff0c;并提供一个可以执行的示例代码。 1. 定义链表结构体 链表是由若干个节…...

sh脚本中使用getopts解析的参数中含有空格的解决方法

一、getopts的问题 如下使用getopts时&#xff0c;当执行命令为 #sh test1.sh -s “A B C” 时&#xff0c; getopts只能解析到 -s A&#xff0c;空格后面的内容就没办法解析了,其实在使用$给fun_main函数传参的时候"A B C"就被分割成了三个参数了。 #!/bin/sh #t…...

关于测试,我发现了哪些新大陆

关于测试 平常也只是听说过一些关于测试的术语&#xff0c;但并没有使用过测试工具。偶然看到编程老师在课堂上使用龙测为我们展示了一波测试的相关操作&#xff0c;我发现了一些新大陆&#xff0c;这篇文章就记录一下有关测试的相关操作。 开启测试之旅 进入官网了解到 龙测…...

HTTP状态代码以及定义

在我们平常浏览网页时&#xff0c;也会发现一些文件不存在时显示为“404错误”&#xff0c;这就是常见的Http请求状态&#xff08;status&#xff09; Web服务器响应浏览器或其他客户程序的请求时&#xff0c;其应答一般由以下几个部分组成&#xff1a;一个状态行&#xff0c;…...

基于Springboot实现口腔牙诊所网站平台【源码+论文】

基于Springboot实现口腔牙诊所网站平台【源码论文】开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea M…...

SQLAlchemy查询不重复的数据

在SQLAlchemy中&#xff0c;如果你想查询不重复的数据&#xff0c;可以使用distinct()方法。以下是一个简单的示例&#xff1a; 首先&#xff0c;导入必要的库和对象&#xff1a; from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declar…...

Leetcode27—移除元素

27 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…...

vue3 组件篇 Message

文章目录组件介绍组件使用组件代码参数说明关于vue3-dxui组件库组件介绍 Message组件用以消息提示&#xff0c;用户在前端完成某些交互时&#xff0c;在页面弹出的某种反馈。该组件一共有四种类型&#xff0c;info、success、warning、error。与一般的组件不同&#xff0c;该组…...

Linux宝塔面板搭建Discuz论坛, 并公网远程访问【内网穿透】

文章目录前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&…...

最长公共子序列 以及 输出公共最长子序列

最长公共子序列 以及 输出公共最长子序列题目描述 给两个字符串&#xff0c;输出最长公共子序列 例如 ABCBDAB BDCABA 那么输出结果就是 BCBC 思路&#xff1a; f[i][j] 表示 1-i 和 1-j 中对应字符串A 和 字符串B的角标中 已经算出的最长子序列长度 b[i][j] 表示 字符串A和B…...

【vue2】使用elementUI进行表单验证实操(附源码)

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;vue使用elementUI进行表单验证实操&#xff08;附源码&#xff09; 【前言】我们在构建一…...

药品批准文号查询|药融云-中国批准文号系统在线查询

药品批文是国家食品药品监督管理局&#xff08;NMPA&#xff09;对药品的审评和批准的证明文件&#xff0c;是药品合法上市的必要条件。药品批文包括国产药品批准文号和进口药品注册证号&#xff0c;每个批文都有唯一的编号和有效期限。那么&#xff0c;怎样查询中国药品批文呢…...

谁是猪头王

来自推理学院APP 规则&#xff1a; 示例&#xff1a; 每张牌上有猪头数量&#xff0c;红色虚线框里面有总数。 现在4位玩家数字公布&#xff0c;首先出2的先选一行清空并扣分&#xff0c;假如他选第2行1个猪头&#xff0c;则扣1分&#xff0c;局面变成&#xff1a; 5 …...

Mac配置jdk环境

打开终端获取java的安装路径在终端输入&#xff1a;/usr/libexec/java_home -V待会使用中间java se8的地址在配置文件中完善路径打开配置文件open -e .bash_profile 将以下模版粘贴到bash profile中去&#xff0c;并将我的jdk地址替换为上述java se8后面的地址后保存#JAVAJAVA_…...

【算法系列之回溯算法】leetcode46.全排列

90.子集II 力扣题目链接 给你一个整数数组 nums &#xff0c;其中可能包含重复元素&#xff0c;请你返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。返回的解集中&#xff0c;子集可以按 任意顺序 排列。 输入&#xff1a;nums [1,2,…...

Docker基础篇——最全讲解

文章目录一、CentOS安装docker二、启动帮助类命令三、镜像命令1.名词概念2.常用命令2.1 镜像命令2.2 容器命令2.2.1&#xff1a;常用参数2.2.2&#xff1a;常用指令2.3 安装单机mysql、redis一、CentOS安装docker docker官网 1&#xff09;yum安装gcc相关&#xff1a; yum -y…...

若依框架----源码分析(@RateLimiter)

若依作为最近非常火的脚手架&#xff0c;分析它的源码&#xff0c;不仅可以更好的使用它&#xff0c;在出错时及时定位&#xff0c;也可以在需要个性化功能时轻车熟路的修改它以满足我们自己的需求&#xff0c;同时也可以学习人家解决问题的思路&#xff0c;提升自己的技术水平…...

Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/129687210 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…...

java基础:JAVA中重写equals()方法的同时要重写hashcode()方法

一、public boolean equals(Object obj) 和 hashcode()方法是object对象中的方法。 二、equals与hashcode间的关系是这样的&#xff1a; 1、如果两个对象相同&#xff08;即用equals比较返回true&#xff09;&#xff0c;那么它们的hashCode值一定要相同&#xff1b; 2、如果…...

你掌握了吗?在PCB设计中,又快又准地放置元件

在印刷电路板设计中&#xff0c;设置电路板轮廓后&#xff0c;将零件(占地面积)调用到工作区。然后将零件重新放置到正确的位置&#xff0c;并在完成后进行接线。 组件放置是这项工作的第一步&#xff0c;对于之后的平滑布线工作是非常重要的工作。如果在接线工作期间模块不足…...

Uploadifive 批量文件上传

Uploadifive 批量文件上传_uploadifive 多个上传按钮_asing1elife的博客-CSDN博客 属性auto - Boolean - true当文件被添加到上传队列时&#xff0c;会自动上传buttonClass - String为上传按钮指定一个类选择器buttonText - String - SELECT FILES定义显示在按钮上的文本内容up…...

多美商城实战-01-引入REST Framework

1. 引入Django REST framework 在本章中,我们要大家介绍为什么学习Django REST framework,它能帮助我们做哪些事情。 课程思路: 我们从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实 现一个REST API为例,明确后端开发REST API要做…...

数字温湿度传感器DHT11模块资料

模块实例https://blog.csdn.net/qq_38393591/article/details/111269994 1.1产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术&#xff0c;确保产品具有极高的可靠性与卓越的长期稳定性。传感器…...

2023面试题汇总二

一、CSS面试题 1. 清除浮动的方式有哪些&#xff1f; 为什么要清除浮动&#xff1f;因为浮动的盒子脱离标准流&#xff0c;如果父盒子没有设置高度的话&#xff0c;下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后&#xff0c;新加一个标签&#xff0c;给其设置cle…...

孩子用什么样的灯对眼睛没有伤害呢?2023这样的灯光更护眼

现代社会高速发展&#xff0c;越来越多的人开始重视身体健康&#xff0c;尤其是很多家长&#xff0c;非常关心孩子的眼睛健康问题。现如今我们的青少年儿童近视率常年高居世界第一&#xff0c;情况不容乐观&#xff0c;这个与习惯、学习、照明环境等众多因素有关。 其中照明环境…...

GitHub的Repository权限将public转为private(转)

转自: GitHub的Repository权限将public转为private 2019年1月7日&#xff0c;GitHub CEO Nat Friedman 于官方博客公开发文&#xff0c;称“New year, new GitHub”&#xff0c;宣布从此将免费无限地为普通用户提供私有仓库服务。 因此&#xff0c;我们可以将之前创建的公开仓库…...

《钢琴调律原理及应用》 笔记

【第一章 绪论】 美国人威廉布雷德怀特于 1917 年发表了世界上第一部关于钢琴调律理论与技术的著作&#xff0c;书名为《钢琴调律与相关技术》 福岛琢郎于1950年发表一部名为《钢琴的构造调律修理》的专著 80年代初&#xff0c;在沈阳音院任教的张琨先生写出了我国第一部有关…...

Java OFD文件转PDF、图片、SVG、TXT、HTML

OFDRW 提供了将 OFD 文档导出为其他格式文档的能力&#xff0c;如导出为 PDF、图片、SVG、TXT、HTML 等。 OFDRW 转换模块在 2.0.0 之后抽象了多种文档导出接口&#xff0c;使用统一的 API 实现 OFD 文档导出功能。 之前整合的 2.0.0 以前版本&#xff0c;可参考 OFD 文件转换…...

WuThreat身份安全云-TVD每日漏洞情报-2023-03-23

漏洞名称:Windows Installer 特权提升漏洞 漏洞级别:高危 漏洞编号:CVE-2023-21800,CNNVD-202302-1117 相关涉及:Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD…...

gan实战(DCGAN、)

一、DCGAN 1.1 参数 &#xff08;1&#xff09;输入&#xff1a;会被放缩到6464 &#xff08;2&#xff09;输出&#xff1a;6464 &#xff08;3&#xff09;数据集&#xff1a; 1.2 实现 import glob import torch from PIL import Image from torch import nn from torch.u…...

视频编辑场景下的文字模版技术方案

作者 | Lok’tar ogar 导读 本文根据度咔剪辑APP文字模版开发实践&#xff0c;分享视频编辑场景下&#xff0c;静态文字模版渲染能力的技术方案。作为富文本渲染方案的父集&#xff0c;此技术方案可以扩展到其他需要复杂富文本渲染的场景下。 全文6745字&#xff0c;预计阅读时…...

移动应用架构设计:如何转变开发流程

移动应用架构设计&#xff1a;如何转变开发流程 2023 年掌握移动应用程序架构的指南&#xff08;附案例研究&#xff09; 如果他们要解决这个问题&#xff0c;开发人员需要了解移动架构设计的最佳实践&#xff0c;使他们能够构建用户喜欢的优化应用程序。其中一些做法包括使用…...

【服务器数据恢复】误操作导致NetApp存储卷丢失的数据恢复案例

服务器数据恢复环境&#xff1a; 某公司的一台NetApp某型号存储&#xff1b; 几十块磁盘组建两组存储池&#xff0c;两组存储池互为镜像&#xff1b; 存储池划分卷并映射到ESXI作为数据存储使用&#xff0c;卷内有数百台虚拟机。 服务器故障&#xff1a; 管理员操作失误导致卷…...

QML- QML视觉元素类型

QML视觉元素类型一、概述一、图像类型三、共享视觉属性1. 不透明度和可见性2. 转换&#xff08;转置&#xff09;一、概述 对于最基本的视觉效果&#xff0c;Qt Quick提供了一个 Rectangle 类型来绘制矩形。这些矩形可以用颜色或垂直渐变来着色。 Rectangle 还可以在矩形上绘制…...

nodejs+vue+elementui水果购物商城vue

水果购物商城系统的主要使用者分为管理员&#xff1b;个人中心、用户管理、水果分类管理、水果信息管理、系统管理、订单管理&#xff1b;前台首页&#xff1b;首页、水果信息、个人中心、后台管理、购物车、人工服务&#xff1b;用户后台&#xff1b;首页、个人中心、水果信息…...

从NVIDIA GTC大会,看AI算力行业信号

从NVIDIA GTC 2023这场全球行业盛宴&#xff0c;我们可以解读出AI算力行业的哪些重要信号&#xff1f;一年一度的NVIDIA GTC如期而至汇聚了全球AI与元宇宙开发者的目光焦点&#xff0c;NVIDIA GTC 2023于美国当地时间3月20日如期而至。众所周知&#xff0c;作为全球一年一度的行…...

Docker 在未来应用场景的有哪些?

Docker是一种流行的容器化技术&#xff0c;可以将应用程序和其依赖项打包到一个可移植的容器中&#xff0c;使得应用程序可以在任何平台上运行。Docker的应用场景非常广泛&#xff0c;下面列举了一些常见的应用场景&#xff1a; 应用程序部署和管理&#xff1a;Docker可以使应…...

部署+使用集群的算力跑CPU密集型任务

我先在开头做一个总结&#xff0c;表达我最终要做的事情和最终环境是如何的&#xff0c;然后我会一步步说明我是如何搭建。 要做的事情 尝试如何使用多台机器的算力共同跑一个CPU密集型或者GPU密集型的任务。这里以CPU密集型为例子。 在多台机器搭建MPI环境&#xff0c;构建…...

MATLAB算法实战应用案例精讲-【智能优化算法】森林优化算法(FOA) (附MATLAB代码实现)

目录 前言 算法原理 算法思想 (一)树的初始化 (二)局部播种...

后端接口返回近万条数据,前端渲染缓慢,content Download 时间长的优化方案

前言 性能优化&#xff0c;是前端绕过不去的一道门槛&#xff0c;甚是重要。最近一年&#xff0c;也很少有机会在项目中进行前端性能优化&#xff0c;一直在忙于业务开发。 最近终于是来了机会&#xff0c;遇到了这样的场景&#xff0c;心里也甚是激动&#xff0c;写个随笔记…...

三天吃透MongoDB面试八股文

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/…...

游戏服务器开发指南(一):设置合适的Socket选项

前言 上周写完系列序言&#xff0c;得到不少读者朋友的关注&#xff0c;这也给了我额外的动力。写东西就是这样&#xff0c;都希望获得更多的关注&#xff0c;如果写出来没什么人看&#xff0c;那就无异于闭门造车、自娱自乐。欢迎朋友们在文后留言&#xff0c;我也会根据大家…...

为什么电路板上的线路总是弯曲的?

不知道小伙伴有没有发现&#xff0c;电路板上的线路虽然密密麻麻&#xff0c;但线路总是弯曲延伸而不是直径到达&#xff0c;毕竟学过小学数学都知道&#xff1a;两点之间直线最短&#xff0c;所以为什么要花那么多线路来设计PCB板&#xff1f;难道不能直接设计成直线。小伙伴们…...

计算机网络(第十三弹) --- ARP 协议及子网掩码的相关概念

ARP 协议及子网掩码1 ARP 协议2 子网掩码1 ARP 协议 ARP 协议就是介于数据链路层和网络层之间的协议; 建立了主机 IP 协议和 MAC 地址的映射关系. 在网络通讯时, 源主机的应用程序知道目的主机的 IP 地址和端口号, 却不知道目的主机的硬件地址, 数据报首先是被网卡接收到再去处…...

Tlsr8258开发-小问题汇总

默认情况如果不指定时钟源&#xff0c;则使用外部晶振&#xff0c;并且默认为16M如果想要在一开始就调用读取flash的函数&#xff0c;一定要先cpu_wakeup_init()&#xff1b; delay_us(150)。我这里是通过读取flash中的值&#xff0c;然后来选择初始化BLE还是2.4G如果想要在BLE…...

python 基础系列篇:四、编写两个简单的小游戏(猜数字及2048)

python 基础系列篇&#xff1a;四、编写两个简单的小游戏&#xff08;猜数字及2048&#xff09;猜数字游戏游戏进程示例需求分析并逐步实现1、使用随机函数包 random2、记录用户输入3、提前做好的结果反馈4、判定A的实现5、判定B的范围6、判定B的判定内容7、判定B的实现8、用户…...

网络安全——网络层安全协议

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 引言 一.网络攻击与防御 1.常见的网络攻击 &#xff08;1&#xff09;窃听…...

8种特“坑”的 SQL 写法,性能降低100倍

给大家分享几个SQL常见的“坏毛病”及优化技巧。 SQL语句的执行顺序&#xff1a; 1、LIMIT 语句 分页查询是最常用的场景之一&#xff0c;但也通常也是最容易出问题的地方。比如对于下面简单的语句&#xff0c;一般 DBA 想到的办法是在 type、 name、 create_time 字段上加组…...

用c++手写一个带箭头的线

根据经纬度&#xff0c;和uv。算出开始点位和结束点位&#xff0c;并在结束点位画一个小箭头。根据需要调整0.2和0.8以及箭头的headSize 。 #include <iostream> #include <vector> #include <cmath> #include "matplotlibcpp.h" namespace plt …...

JVM-Java虚拟机(二)

执行引擎概述1.执行引擎是 Java 虚拟机核心的组成部分之一。2.JVM 的主要任务是负责装载字节码到其内部&#xff0c;但字节码并不能够直接运行在操作系统之上&#xff0c;因为字节码指令并非等价于本地机器指令&#xff0c;它内部包含的仅仅只是一些能够被 JVM 所识别的字节码指…...

Golang中的边界检查和边界检查消除(bounds check elimination)

边界检查大家都知道Golang是内存安全型语言&#xff0c;在根据索引获取数组/切片元素时&#xff0c;Golang runtime 会检查索引是否超出范围&#xff0c;如果索引超出了范围&#xff0c;程序就会 panic&#xff0c;这种机制叫做边界检查&#xff08;bounds check&#xff09;。…...

发现一个不错的golang框架,文档非常详细,自带代码生产dao工具,可以快速的进行项目开发,还有社区也是非常的活跃

目录前言1&#xff0c;关于goframe框架介绍2&#xff0c;创建Dao代码3&#xff0c;测试Dao的方法4&#xff0c;总结前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/129698017 未经博主允许不得转载。 博主CSDN地址是&#xff1a;https://blog.csdn…...

使用Python开启局域网传送数据(3):使用 simple_http_server 实现上传下载功能

&#x1f4a1;温馨提示&#xff1a;本文测试环境&#xff1a;windows11 64位、Python3.9。 摘要&#xff1a;本文将介绍在 Windows 系统中如何使用 Python 的第三方模块 simple_http_server 实现在局域网中传送数据&#xff0c;仅限于别人上传文件给自己的功能&#xff0c;不具…...

Flink 第1章 基础介绍和特性

一 Flink概念 1.1 Flink的概念 Flink是一个框架和分布式处理引擎&#xff0c;用于对无界和有解数据流进行状态计算。如下图所示&#xff1a; 1.2 Flink的应用场景 1.3 Flink的目标 1.高吞吐量 2.低延迟 3&#xff0c;结果的准确性和良好的容错性。 1.4 Flink与spark的区别…...

JavaScript查找数组内的元素的方法 filter() find includes findIndex lastIndexOf indexOf

需求&#xff1a;查找数组内元素6是否存在 let arr [1, 3, 6, 5, 7, 6]; 方法1、indexOf方法 let index1 arr.indexOf(6); console.log(index1);//2方法2、lastIndexOf方法 从右至左查找&#xff0c;找到返回索引&#xff0c;找不到返回-1 let index2 arr.lastIndexOf(6)…...

mybatis-plus的批量新增insertBatchSomeColumn

MyBatis-Plus 是基于 MyBatis 进行封装的一套优秀的持久层框架&#xff0c;它提供了丰富的便捷操作方法和强大的代码生成器&#xff0c;大大简化了 MyBatis 的使用。在 MyBatis-Plus 中&#xff0c;我们可以使用 insertBatchSomeColumn 方法来实现批量新增指定字段的操作。 myb…...

2023-第十四届蓝桥杯冲刺计划!

&#x1f4ac;前言 &#x1f4a1;本文以目录形式列举大纲,可根据题目点击跳转 &#x1f308;冲刺阶段目的&#xff1a;把握高频重点,结合基础算法和常考题型总结,用真题进行模拟练习 根据自己的能力熟练目前已掌握的算法&#xff0c;不会的还可以暴力 ⏳最后三个星期大家一起冲…...

通过Linux串口实现树莓派与电脑通信

目录 一 串口说明 二 USB—TTL模块 ● usb-ttl模块接口 三 串口通信常用的API 四 修改串口的配置文件 五 串口通信代码验证 ● 发送一个字符/字符串到串口 ● 树莓读取串口数据&#xff08;字符&#xff09; ● 代码拓展&#xff08;双方&#xff09; 一 串口…...