JavaScript事件处理和常用对象
文章目录
- 前言
- 一、事件处理程序
- 1.JavaScript 常用事件
- 2.事件处理程序的调用
- 二、常用对象
- 1.Window 对象
- 2.String 对象
- 3.Date 对象
- 总结
前言
JavaScript 语言是事件驱动型的。这意味着,该门语言可以通过事件触发来调用某一函数或者一段代码。该文还简单介绍了Window 、String、Date 对象如何使用。
一、事件处理程序
JavaScript 可以以事件驱动的方式直接对客户端的输入做出响应,无需经过服务器端程序。JavaScript 简化了图形界面的交互操作,使得其更加简单直接。
什么是事件处理程序?
JavaScript 与 Web 页面之间的交互是通过用户操作浏览器页面时触发事件来实现的。例如,当用户点击页面按钮时,会触发按钮的 onclick 事件,从而执行 onclick 调用的事件处理程序等等。事件处理程序是用于响应某个事件而执行的处理程序。它可以是任意 JavaScript 语句,但通常使用特定的自定义函数(Function)来对事物进行处理。
1.JavaScript 常用事件
JavaScript 语言有很多的常用事件。
| 事件 | 何时触发 |
| onabort | 对象载入被中断时触发 |
| onblur | 元素或窗口本身失去焦点时触发 |
| onchange | 改变<select>元素中的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生过改变时触发 |
| onclick | 单击鼠标时触发。当光标的焦点在按钮上,并按下 Enter 键时,也会触发该事件 |
| ondblclick | 双击鼠标时触发 |
| onerror | 出现错误时触发 |
| onfocus | 任何元素或窗口本身获得焦点时触发 |
| onkeydown | 键盘上的按键(包括 Shift 或 Alt 等键)被按下时触发,如果一直按着某键,则会不断触发。当返回 false 时,取消默认动作 |
| onkeypress | 键盘上的按键被按下,并产生了一个字符时发生。也就是,当按下 Shift 或 Alt 等键时不触发。如果一直按下某键时,会不断触发。当返回 false 时,取消默认动作。 |
| onkeyup | 释放键盘上的按键时触发 |
| onload | 页面完全载入后,在 Window 对象上触发;当所有框架都载入后,在框架集上触发;<img>标记指定的图像完全载入后,在其上触发;或 <object> 标记指定的对象完全载入后,在其上触发。 |
| onmousedown | 单击任何一个鼠标键时触发 |
| onmousemove | 鼠标在某个元素上移动时持续触发 |
| onmouseout | 将鼠标从某个指定的元素上移开时触发 |
| onmouseover | 鼠标移到某个元素上时触发 |
| onmouseup | 释放任意一个鼠标按键时触发 |
| onreset | 点击重置按钮时,在 <form> 上触发 |
| onresize | 窗口或框架的大小发生改变时触发 |
| onscroll | 在任何带滚动条的元素或窗口上滚动时触发 |
| onselect | 选中文本时触发 |
| onsubmit | 单击提交按钮时,在<form> 上触发 |
| onunload | 页面完全卸载后,在 Window 对象上触发;或者所有框架都卸载后,在框架集上触发 |
2.事件处理程序的调用
在使用事件处理程序对页面进行操作时,最重要的是如何通过对象的事件来指定事件处理程序。在 JavaScript 中调用事件处理程序,复杂繁琐但可以供程序员进行更多的代码操作;在 HTML 中调用事件处理程序,简单实用但是更多复杂的交互不易实现。开发过程中可以根据实际情况来选择。
(1)在 JavaScript 中调用
在 JavaScript 中调用事件处理程序时,首先需要获得要处理对象的引用,然后将要执行的处理函数赋值给对应的事件。
实操:创建一个按钮,点击该按钮元素会触发事件 onclick,从而调用程序 function() 函数。
<input name="bt_submit" type="button" value="提交"><script>var b_save=document.getElementByld("bt_submit");b_save.onclick=function(){alert("点击了提交按钮");}</script>
document.getElementById()方法是JavaScript中的一个DOM方法,用于根据元素的id属性获取元素对象。它接受一个参数,即元素的id属性值,然后返回具有该id的元素对象。通过这个方法,我们可以通过元素的id来访问和操作DOM树中的元素。
运行结果:

在上面的代码中,一定要将 <input> 标记代码放在 JavaScript 代码的上方,否则将会报出 " 'bt_submit' 为空或不是对象 " 的错误提示。
在 JavaScript 中指定事件处理程序时,事件名称必须是小写,才能正确响应事件。
(2)在 HTML 中调用
在 HTML 中分配事件处理程序,只需要在 HTML 标记中添加相应的事件,并在其中指定要执行的代码或是函数名即可。
实操:
<input name="bt_submit" type="button" value="提交" onclick="alert('数据内容已提交')">
运行结果:

如上图所示,在 HTML 中的事件属性里添加相应的 Script 语句即可通过事件触发程序。
二、常用对象
JavaScript 是一门基于对象的语言,它可以应用自己创建的对象。JavaScript 的常用对象有 Window、String、Date 对象。
1.Window 对象
Window 对象即浏览器窗口对象,该对象是一个全局对象,它表示浏览器窗口或框架,并提供了与浏览器窗口和框架相关的方法和属性。
通过"Window"对象,可以访问和操作窗口大小、位置、URL、文档元素、浏览历史记录等。
Window 对象同 Math 对象一样,不需要使用 new 关键字创建对象实例,而是直接使用"对象名.成员"的格式来访问其属性或方法。
(1)Window 对象的属性
| 属性 | 功能描述 |
| document | 对窗口或框架中含有文档的 Document 对象的只读引用 |
| defaultStatus | 一个可读写的字符,用于指定状态栏中的默认消息 |
| frames | 表示当前窗口中所有 Frame 对象的集合 |
| location | 用于代表窗口或框架的 Location 对象。如果将一个 URL 赋予该属性,则浏览器将加载并显示该 URL 指定的文档 |
| length | 窗口或框架包含的框架个数 |
| history | 对窗口或框架的 History 对象的只读引用 |
| name | 用于存放窗口对象的名称 |
| status | 一个可读写的字符,用于指定状态栏中的当前信息 |
| top | 表示最顶层的浏览器窗口 |
| parent | 表示包含当前窗口的父窗口 |
| opener | 表示打开当前窗口的父窗口 |
| closed | 一个只读的布尔值,表示当前窗口是否关闭。当浏览器窗口关闭时,表示该窗口的 Window 对象并不会消失,不过其 closed 属性被设置成了 true |
| self | 表示当前窗口 |
| screen | 对窗口或框架的 Screen 对象的只读引用,获取屏幕尺寸、颜色深度等信息 |
| navigator | 对窗口或框架的 Navigator 对象的只读引用,通过 Navigator 对象可以获得与浏览器相关的信息 |
(2)Window 对象的方法
| 方法 | 功能描述 |
| alert() | 弹出一个警告对话框 |
| confirm() | 显示一个确认对话框,单击"确认"按钮时返回 true,否则返回 false |
| prompt() | 弹出一个提示对话框,并要求输入一个简单的字符串 |
| blur() | 将键盘焦点从顶层浏览器窗口中移走。在多数浏览器上,这将使窗体移到最后面 |
| close() | 关闭窗口 |
| focus() | 将键盘焦点赋予顶层浏览器窗口。在多数浏览器上,这将使窗体移到最前面 |
| open() | 打开一个新窗口 |
| scrollTo(x,y) | 将滚动页面滚动到(x,y)的坐标指定的位置 |
| scrollBy(offsetx,offsety) | 按照指定的位移量来滚动窗口 |
| setTimeout(timer) | 在经过指定的时间后再执行代码 |
| clearTimeout() | 取消对指定代码的延迟运行 |
| moveTo(x,y) | 将窗口移动到一个绝对位置 |
| moveBy(offsetx,offsety) | 将窗口按照指定位移量移动到某处 |
| resizeTo(x,y) | 设置窗口的大小 |
| resizeBy(offsetx,offsety) | 按照指定的位移量设置窗口的大小(用于扩大或缩小窗口,正值扩大,负值缩小) |
| print() | 相当于浏览器工具栏中的 "打印" 按钮 |
| setInterval() | 周期性执行指定的代码 |
| clearInterval | 停止周期性地执行代码 |
由于 Window 对象使用十分频繁,又是其他对象的父对象,所以在使用 Window 对象的属性和方法时,JavaScript 允许省略 window 对象的名称。
例如:
window.alert("Hellow world");alert("Hellow world");以上两行代码的效果是一样的。注意代码里的 window 开头字母是小写!
在 Window 对象中, open() 方法和 close() 方法在实际网站开发中经常用到。
(1)open() 方法
open() 方法用于打开一个新的浏览器窗口,并在该窗口中添加指定 URL 地址的网页。该方法的语法格式如下:
windowVar=window.open(url,windownname,windowFeatures);
windowVar:当前打开窗口的对象。如果 open() 方法执行成功,则 windowVar的值为 Window 对象,否则该值为空值。
url:目标窗口的 URL。如果 URL 是一个空字符串,则浏览器将打开一个空白窗口,允许使用 write() 方法创建动态 HTML。
windowname:用于指定新窗口的名称,该名称可以作为<a>标记和<form>的 target 属性的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法将不再创建一个新窗口,而只是一个返回该指定窗口的对象。
windowFeatures:对窗口属性进行设置的值,具体可选参数如下表所列:
对窗口属性进行设置的可选参数 参数 功能描述 width 窗口的宽度 height 窗口的高度 top 窗口顶部距离屏幕顶部的像素数 left 窗口左端距离屏幕左端的像素数 scrollbars 是否显示滚动条,值为 yes 或 no (可以通过设定值决定是否显示) resizable 设定窗口大小是否固定,值为 yes 或 no(可以通过设定值决定是否固定) toolbar 浏览器工具栏,包括后退及前进按钮等,值 yes 或 no(可以通过设定值决定是否显示) menubar 菜单栏,一般包括文件、编辑以及其他菜单项,值为 yes 或 no(可以通过设定值决定是否显示) location 地址栏,用于输入 URL 的浏览器文本区,值为 yes 或 no(可以通过设定值决定是否显示) windowFeatures 参数需要开发者根据不同参数来填写对应数据。
实操:在一个Html页面中使用 open() 方法来弹出另一个窗口。
<html><head><title>网站</title></head><body><script>window.open("test.html","test","width=80,height=80,left=80");</script></body>
</html>
运行结果:

以前我们上网点击某处时会莫名其妙地弹出许多页面广告,这个原理和上面的差不多。不过现在先进的浏览器可以拦截弹窗了。
(2)close() 方法
close() 方法用于关闭当前窗口。该方法的语法格式如下:
window.close();
实操:页面中添加 "关闭" 按钮,当用户单击 "关闭" 按钮时,响应关闭页面。
<input name="close" type="button" class="btn_grey" value="关闭" onclick="window.close()">
运行结果:

2.String 对象
String 对象是动态对象,需要创建对象实例后才能引用其属性和方法。在 JavaScript 中可以直接在字符串后面加上点" . "去调用 String 对象的属性和方法。剩下的内容和在 Java 中使用String 基本无差。
(1)属性
String 对象最常用的属性是 length,该属性返回 String 对象的长度。该语法格式如下:
string.length
返回值:一个只读的整数。代表字符串的字符个数,一个汉字一字符。
实例:
"这是一个字符串".length;
运行结果:

(2)方法
String 对象提供了很多用于对字符串进行操作的方法。
| 方法 | 功能描述 |
| anchor(name) | 为字符串对象中的内容两边加上 HTML 的<a name=name></a>标记对 |
| big() | 为字符串对象中的内容两边加上 HTML 的<big></big>标记对 |
| bold() | 为字符串对象中的内容两边加上 HTML 的<b></b>标记对 |
| charAt(index) | 返回字符串对象中指定索引号的字符组成的字符串,内容为位置的有效值为 0 到字符串长度减 1 的连接起的数值。若指定索引位置超出了有效范围,返回一个空字符串 |
| charCodeAt(index) | 返回一个整数,该整数表示字符串对象中指定位置处的字符的 Unicode 编码 |
| concat(sl,...,sn) | 调用方法的字符串与指定字符串结合,结果返回新字符串 |
| fontcolor | 为字符串对象中的内容两边加上 HTML 的<font></font>标记对,并设置 color 属性,可以是颜色的十六进制值,也可以是颜色的预定义名 |
| fontsize(size) | 为字符串对象中的内容两边加上 HTML 的<font></font>标记对,并设置 size 属性 |
| indexOf(pattern) | 查询全字符串中第一次出现的 patten 字符,查到后返回该参数的位置值(int值)。如果该字符中不包含要查找的字符,则返回 -1 |
| indexOf(patten,startIndex) | 查询全字符串中第一次出现的 patten 字符,查到后返回该参数的位置值(int值)。如果该字符中不包含要查找的字符,则返回 -1。不过检索位置从 startIndex 指定的位置开始查找 |
| lastIndexOf(patten) | 从最后一个字母开始查询,第一次查询到的 patten 字符,查到后返回该参数的位置值(int值)。如果该字符中不包含要查找的字符,则返回 -1 |
| lastIndexOf(patten,startIndex) | 从最后一个字母开始查询,第一次查询到的 patten 字符,查到后返回该参数的位置值(int值)。如果该字符中不包含要查找的字符,则返回 -1。不过检索位置从 startIndex 指定的位置开始倒查 |
| localeCompare(s) | 用特定比较方法比较字符串与 s 字符串。如果字符串相等,则返回 0,否则返回一个非 0 数字值 |
下面是 String 的一些方法的使用:
(1)indexOf() 方法
indexOf() 方法用于返回 String 对象内第一次出现字符串的地方。
语法:
string.indexOf(subString,startIndex);
subString:要在 String 对象中查找的子字符串。
startIndex:该整数值指出在 String 对象内开始查找的起点。
String 对象的索引值是从 0 开始算起的。
实操:查询字符串 "Hellow world!" 字符串中起点为 5 的遇见的第一个字母w的位置
<script>var string = 'Hellw world!'var result = string.indexOf("w",5);alert("索引位位5开始索引第一个字母w所在的位置是;"+result);
</script>
运行结果:

(2)substr() 方法
substr() 方法用于返回指定字符串的一个子串。语法格式如下:
string.substr(start,length)
start:用于指定获取子字符串的起始下标,如果是一个负数,那么从字符串的尾部开始算起位置。-1 指字符串最后一个字符,-2 指字符串倒数第二个字符,等等。
length:用于指定获取子字符串中字符的个数。若忽略该参数,则从 start 开始位置截取到字符串结尾。
实操:在字符串 "你若安好,便是晴天" 字符串中截取拼接出 "晴天安好" 字符串。
<script>var string = '你若安好,便是晴天'var result1 = string.substr("2",2);var result2 = string.substr("7");alert("原话:"+string+"\n截取内容:"+result2+result1);
</script>
运行结果:

(3)subtring() 方法
substring() 方法用于返回指定字符串的一个字串。语法格式如下:
string.substring(from,to)
from:用于指定要获取子字符串的第一个字符在 string 中的位置。
to:用于指定要获取子字符串的最后一个字符在 string 中的位置。
注:to值不会截取到,截取到的最后一位值是 to值-1
实操:截取字符串"天上飘来几个字,那都不是事"字符串的 "不是"
<script>var string = '天上飘来几个字,那都不是事'var result1 = string.substring(10,12);alert("原话:"+string+"\n截取内容:"+result1);
</script>
运行结果:

(4)replace() 方法
replace() 方法用于替换一个与正则表达式匹配的字串。语法格式如下:
string.replace(regExp,substring);
regExp:一个正则表达式。如果正则表达式中设置了表示 g,那么该方法将用替代字符串替代检测到的所有与模式匹配的子串,否则只替换所检测到的第一个与模式匹配的子串。
subString:用于指定替换文本或生成替换文本的函数。如果 subString 是一个字符串,那么每个匹配都将由该字符串替换。
substring 中的 ”$“ 字符的意义 字符 替换文本 $1,$2,...,$99 与 regExp 中的第1~99个子表达式匹配的文本 $& 与 regExp 相匹配的子串 $` 位于匹配字串左侧的文本 $' 位于匹配子串右侧的文本 $$ 直接量 $ 符号
实操:去掉字符串中的首尾空格。
<script>function trim(){var str=form1.oldString.value;if(str==""){alert("请输入原字符串");form1.oldString.focus();return;}else{var objExp=/(^\s*)|(\s*$)/g;str=str.replace(objExp,""); }form1.newString.value=str;}
</script>
使用正则表达式,将有字符串首尾有空格的删去。
运行结果:

(5)split() 方法
split() 方法用于将字符串分割成字符串数组。语法格式如下:
string.split(delimiter,limit);
delimiter:字符串或正则表达式,用于指定分隔符。
limit:用于指定返回数组的最大长度。如果设置了该参数,返回的子字符串长度不会比这个值大。
返回值:一个字符串数组。
在使用 split() 方法分割数组时,返回的数组不包括 delimiter 自身。
3.Date 对象
JavaScript 的 Date 对象可以对日期和时间进行操作。比如做一个页面上的实时钟表等例子。
1.创建 Date 对象
Date 对象是一个关于日期和时间的对象。它具有动态性,必须使用 new 关键字实例化Date对象。语法格式如下:
dateObj = new Date()
dateObj = new Date(dateValue)
dateObj = new Date(year,month,date,hours,minutes,seconds,ms)
ms:表示毫秒。
month:表示月份。从零开始计数,month = 实际月份+1
2.Date 对象的方法
Date 对象没有直接访问的属性,只具有获取、设置日期和时间的方法。
| 方法 | 功能描述 |
| getFullYear() | 返回 Date 对象中的年份,4位数表示,采用本地时间或世界时 |
| getMonth() | 返回 Date 对象中的月份(0~11),采用本地时间或世界时 |
| getDate() | 返回 Date 对象中的日期(1~31),采用本地时间或世界时 |
| getDay() | 返回 Date 对象中的星期(0~6),采用本地时间或世界时 |
| getHours() | 返回 Date 对象中的小时(0~23),采用本地时间或世界时 |
实操:在页面中创建一个实时的时钟。
<script>window.onload=function(){window.setInterval(function() { realSysTime(document.getElementById("clock")); }, 1000);}function realSysTime(clock){var now=new Date();var year=now.getFullYear();var month=now.getMonth();var date=now.getDate();var day=now.getDay();var hour=now.getHours();var minu=now.getMinutes();var sec=now.getSeconds();month=month+1;var arr_week=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");var week=arr_week[day];var time=year+"年"+month+"月"+date+"日"+week+" "+hour+":"+minu+":"+sec;clock.innerHTML="当前时间:"+time;}
</script>
运行结果:

总结
以上就是 JavaScript 的事件处理程序和常用对象的介绍,需要简单回顾这方面知识的同学可以迅速来过一遍基础。有补充或指正的内容欢迎在评论区中留言。
相关文章:
JavaScript事件处理和常用对象
文章目录 前言一、事件处理程序 1.JavaScript 常用事件2.事件处理程序的调用二、常用对象 1.Window 对象2.String 对象3.Date 对象总结 前言 JavaScript 语言是事件驱动型的。这意味着,该门语言可以通过事件触发来调用某一函数或者一段代码。该文还简单介绍了Window…...
Qt基础类05-尺寸类QSize
Qt基础类05-尺寸类QSize 摘要基本信息写在前面重要成员函数举例7个QSize QSize::boundedTo(const QSize &otherSize) constQSize QSize::expandedTo(const QSize &otherSize) constbool QSize::isEmpty() constbool QSize::isNull() constbool QSize::isValid() constQ…...
Vue 2中的this指向详解
在JavaScript中,this的指向是许多开发者经常遇到的问题,尤其是在使用Vue这样的框架时。在Vue 2中,理解this的指向对于正确地访问组件的数据和方法至关重要。 1. this在Vue组件中的指向 在Vue组件的选项中,this通常指向当前组件实…...
长业务事务的离线并发问题
事务指代一组操作同时成功或同时失败,事务可分为两类: 系统事务:即关系数据库事务,一次数据库连接中由start transaction或begin开启,commit表示提交,rollback表示回滚;业务事务:完…...
黑马程序员Java笔记整理(day01)
1.windowsR进入运行,输入cmd 2.环境变量 3.编写java第一步 4.使用idea 5.注释 6.字面量 7.变量 8.二进制 9.数据类型 10.关键词与标识符...
VMware Tools系列一:安装VMware Tools的作用
最近笔者安装了VMware Workstation pro 17,同时在VMware中安装了华为的Open Euler服务器,由于虚拟机Open Euler经常需要与宿主机win10交换数据,很不方便,而安装VMware Workstation pro 17并没有自动安装了VMware Tools ࿰…...
使用大语言模型(LLM)修正小段乱码(Mojibake)为正常文本
Python方案 在上一篇文章ftfy:修正小段乱码(Mojibake)为正常文本的Python库中,我介绍了ftfy这个库。但随着持续的开发,我发现它仍然有一些解决不了的转换。如下: >>> ftfy.fix_text(‡›‘…...
C++ 访问限定符
个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目:C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 C一种实现封装的方式,用类将对象的属性与方法结合在一块…...
几种mfc140u.dll常见错误情况,以及mfc140u.dll文件修复的方法
如果你遇到与mfc140u.dll 文件相关的错误,这通常指的是该mfc140u.dll文件可能丢失、损坏或与您的应用程序不兼容。详细分析关于mfc140u.dll文件错误会对系统有什么影响,mfc140u.dll文件处于什么样的位置?以下是几种常见的错误情况及其修复方法…...
[产品管理-21]:NPDP新产品开发 - 19 - 产品设计与开发工具 - 详细设计与规格定义
目录 前言: 一、详细设计与规格定义概述 1、产品详细设计 2、规格定义 3、详细设计与规格定义的关系 4、实际应用中的注意事项 二、详细设计与规格定义主要工具 2.1 质量功能展开QFD - 需求跟踪矩阵 1、QFD的基本原理 2、QFD的实施步骤 3、QFD的优势与应…...
powershell@文件大小排序@文件夹磁盘占用分析
文章目录 abstractpowershell对于列出子目录大小的支持状况按文件大小排序指定目录下所有文件 扩展的专用函数介绍统计目录或文件的大小👺对指定目录以友好的格式列出所有文件和子目录的大小函数灵活性说明👺 综合用例其他相关软件易用系列 abstract 在…...
详解c++多态---上
virtual关键字 1.可以修饰原函数,为了完成虚函数的重写,满足多态的条件之一。 class Person { public:virtual void BuyTicket() { cout << "买票-全价" << endl; } };class Student : public Person { public:virtual void Buy…...
emWin5的图片半透明之旅
文章目录 目标过程直接使用png (失败了)通过 BmpCvt.exe 转换一下(成功了)通过bmp转 (半成功吧) 补充工程结构整理 目标 显示半透明效果,类似png那种,能透过去,看到背景。 过程 直接使用png …...
【RabbitMQ 项目】项目概述
项目概述 一.角色划分二.服务器模块概述1.本地模块2.网络模块3.服务器模块 三.模块详细划分1.服务端2.客户端 一.角色划分 该项目的模型是一个跨主机的生产消费模型,有三种角色:生产者,消费者,中间人。对应就要实现三个大模块&…...
【VSCode】VSCode Background 背景插件辅助窗口程序
前排贴上Github项目链接 GitHub窗口项目链接 这是一个基于VSCode上由shalldie上传的background扩展制作的windows窗口程序。 该程序旨在通过窗口程序尽可能的完善该扩展原有的功能。 background - shalldie 的最大优势是我目前仅在其扩展上发现了UseFront的选项,这…...
gdb 前端:kdbg 安装使用
文章目录 1. 前言2. kdbg 安装使用2.1 安装 kdbg2.2 使用 kdbg 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. kdbg 安装使用 2.1 安装 kdbg kdbg 是 gdb 的图形化界面的前端,在 …...
UDP_SOCKET编程实现
文章目录 socket编程接口认识struct sockaddr类 编写一个server服务Client代码查看启动结果代码修正1.获取内核分配给客户端的信息2.修正不匹配ip不能访问的问题 不同机器之间的通信利用xftp将udp_client传给wsl的ubuntu机器进行演示现在模拟在windows下的udp_client代码: 对方…...
【网络】高级IO——阻塞IO和非阻塞IO的实现
目录 一.文件描述符的默认行为——阻塞IO 二.非阻塞IO 2.1.在打开文件或创建套接字时设置非阻塞模式: 2.2.在使用网络I/O接口时请求非阻塞行为: 2.3.fcntl函数 一.文件描述符的默认行为——阻塞IO 在Linux系统中,无论是通过open系统调用…...
ASPICE培训:打造卓越的汽车软件开发能力
随着汽车行业的快速发展和智能化技术的不断演进,汽车软件开发已成为汽车制造过程中不可或缺的一部分。为了确保汽车软件的质量、可靠性和安全性,ASPICE(Automotive SPICE)作为一种国际公认的汽车软件开发过程评估标准,…...
基于Python的人工智能应用案例系列(2):分类
在本篇文章中,我们将探讨分类问题,具体的应用场景是贷款审批预测。通过该案例,我们将学习如何使用Python处理分类问题,训练模型并预测贷款是否会被批准。 案例背景 该数据集包含贷款申请的相关信息,目标是预测贷款是否…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
