2020.08.19瑛太莱前端一面
1.输入url到页面渲染的过程?
- 首先通过DNS解析域名查询到IP,这个查询是操作系统自己做的,操作系统会首先在本地缓存中查询 IP,没有的话会去系统配置的 DNS服务器中查询,如果这时候还没得话,会直接去 DNS 根服务器进行递归查询。
- 接下来是 TCP 握手,应用层会下发数据给传输层,这里 TCP 协议会指明两端的端口号,然后下发给网络层。网络层中的 IP协议会确定 IP 地址,并且指示了数据传输中如何跳转路由器。然后包会再被封装到数据链路层的数据帧结构中,最后就是物理层面的传输了。
- TCP 三次握手结束后,开始发送 HTTP 请求。
- 服务端处理请求,响应一个 HTML 文件。首先浏览器会判断状态码是什么,如果是 200 那就继续解析,如果 400 或 500
的话就会报错,如果 300 的话会进行重定向。 - 浏览器拿到响应文本 HTML正式开始渲染流程。先会根据 HTML 构建 DOM 树,有 CSS 的话会去构建 CSSOM 树。如果遇到 script 标签的话,会判断是否存在 async 或者 defer ,前者会并行进行下载并执行 JS,后者会先下载文件,然后等待 HTML 解析完成后顺序执行。如果以上都没有,就会阻塞住渲染流程直到 JS 执行完毕。
- CSSOM 树和 DOM 树构建完成后会开始生成 Render 树,这一步就是确定页面元素的布局、样式等等。在生成 Render
树的过程中,浏览器就开始调用 GPU 绘制,合成图层,将内容显示在屏幕上了。 - 数据传送完毕,断开 tcp 连接。
2.回流和重绘?
- 重绘是当节点需要更改外观而不会影响布局的,比如改变 color 就叫称为重绘。
- 回流是布局或者几何属性需要改变就称为回流。
3.改变字体大小是回流还是重绘?
回流,回流必定会发生重绘,重绘不一定会引发回流。
4.浏览器缓存?
- 强缓存:浏览器请求数据的时候,服务端在response header里面对该文件进行了缓存配置,浏览器在拿到数据之后,在过期时间之内不会再去重复请求。强缓存只有首次请求时才会跟服务器通信,读取缓存资源时不会发出任何请求。如何知道当前时间是否超过了过期时间 。http1.0: 通过Expires响应头实现,表示过期时间 http1.1: 通过Cache-Control响应头实现,常用字段是max-age,表示缓存资源将在xxx秒后过期。
- 强缓存失效之后,浏览器在请求头中携带相应的缓存tag来向服务器发请求,由服务器根据这个tag,来决定是否使用缓存,这就是协商缓存。缓存tag分为两种: Last-Modified 和 ETag。
Last-Modified:即最后修改时间。在浏览器第一次给服务器发送请求后,服务器会在响应头中加上这个字段。浏览器接收到后,如果再次请求,会在请求头中携带If-Modified-Since字段,这个字段的值也就是服务器传来的最后修改时间。服务器拿到请求头中的If-Modified-Since的字段后,其实会和这个服务器中该资源的最后修改时间对比:如果不相等,说明更新了,返回新的资源;否则返回304,告诉浏览器直接用缓存。
ETag 是服务器根据当前文件的内容,给文件生成的唯一标识,只要里面的内容有改动,这个值就会变。服务器通过响应头把这个值给浏览器。浏览器接收到ETag的值,会在下次请求时,将这个值作为If-None-Match这个字段的内容,并放到请求头中,然后发给服务器。服务器接收到If-None-Match后,会跟服务器上该资源的ETag进行比对:如果两者不一样,说明更新了,返回新的资源;否则返回304,告诉浏览器直接用缓存。
5.事件循环?
- 一开始整段脚本作为第一个宏任务执行。
- 执行过程中同步代码直接执行,宏任务进入宏任务队列,微任务进入微任务队列。
- 当执行完所有同步代码后,执行栈为空,查询是否有异步代码需要执行。
- 检查微任务队列,如果有则依次执行,直到微任务队列为空。
- 当执行完所有微任务后,如有必要会渲染页面。
- 执行队首新的宏任务,开始下一轮 Event Loop。
6.js为啥是单线程的?
这主要和js的用途有关,js是作为浏览器的脚本语言,主要是实现用户与浏览器的交互,以及操作dom;这决定了它只能是单线程,否则会带来很复杂的同步问题。如果js被设计了多线程,如果有一个线程要修改一个dom元素,另一个线程要删除这个dom元素,此时浏览器就会一脸茫然,不知所措。所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征。
7.浏览器有哪些线程?
GUI渲染线程、JS引擎线程、事件触发线程、定时器触发线程、异步http请求线程。
8.宏任务微任务有哪些?
宏任务:script整体代码、settimeout回调、ajax请求回调。
微任务:promise.then、process.nextTick。
9.ajax请求回调是宏任务还是微任务?
宏任务。
10.自己怎么实现轮播图?
原理:将一些图片在一行中平铺,然后计算偏移量再利用定时器实现定时轮播。
- 建立html基本布局
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>轮播图</title>
</head>
<body><div class="container"><div class="wrap" style="left:-600px;"><img src="./img/5.jpg" alt=""><img src="./img/1.jpg" alt=""><img src="./img/2.jpg" alt=""><img src="./img/3.jpg" alt=""><img src="./img/4.jpg" alt=""><img src="./img/5.jpg" alt=""><img src="./img/1.jpg" alt=""></div><div class="buttons"><span>1</span><span>2</span><span>3</span><span>4</span><span>5</span></div><a href="javascript:;" class="arrow arrow_left"><</a><a href="javascript:;" class="arrow arrow_right">></a></div>
</body>
</html>
只有五张图片,却使用7张来轮播,这是为了实现无缝轮播;而5个span,即我们可以实时看到轮播图目前所处的位置;最后是两个按钮,可以通过它来控制前进与后退;这里我们需要对wrap使用绝对定位,所以用left:-600px;将第一张图片显示出来。
- css布局
首先,resetcss,如下所示:
* {margin:0;padding:0;}a{text-decoration: none;}
接着,为了让图片只在container中,需要限定其宽度和高度并且使用overflow:hidden;将其余的图片隐藏起来,并且我们希望wrap相对于container左右移动,所以设置为relative,如下:
.container {position: relative;width: 600px;height: 400px;margin:100px auto 0 auto;box-shadow: 0 0 5px green;overflow: hidden;}
设置wrap是绝对定位的,就可以通过控制Left和Right来控制图片的移动了。设置z-index:1;以对后面将要放置的buttons作为参考。 因为共有七张图片,所以width为4200px(每张图片我们设置为600X400),我们只需让图片左浮动即可实现占满一排了。
.wrap {position: absolute;width: 4200px;height: 400px;z-index: 1;}
然后把图片设置为左浮动,并限定其大小,如下所示:
.container .wrap img {float: left;width: 600px;height: 400px;}
然后把显示次序的buttons放在图片的右下角。并且设置z-index:2;以保证buttons是在图片的上面的。
.container .buttons {position: absolute;right: 150px;bottom:20px;width: 100px;height: 10px;z-index: 2;}
然后将buttons下面的span做一个简单的修饰,并且给和图片对应的span设置一个on类,如下:
.container .buttons span {margin-left: 5px;display: inline-block;width: 20px;height: 20px;border-radius: 50%;background-color: green;text-align: center;color:white;cursor: pointer;}.container .buttons span.on{background-color: red;}
接下来,把左右切换的箭头加上,然后做简单的修饰,注意:因为这里使用实体来表示左右箭头,所以设置font-size才能改变其大小,
.container .arrow {position: absolute;top: 35%;color: green;padding:0px 14px;border-radius: 50%;font-size: 50px;z-index: 2;display: none;}.container .arrow_left {left: 10px;}.container .arrow_right {right: 10px;}.container:hover .arrow {display: block;}.container .arrow:hover {background-color: rgba(0,0,0,0.2);}
- js逻辑
首先获取到 wrap(因为要设置其left才能控制轮播图),然后获取到左右两个箭头,并实现手动轮播,如下:
var wrap = document.querySelector(".wrap");var next = document.querySelector(".arrow_right");var prev = document.querySelector(".arrow_left");next.onclick = function () {next_pic();}prev.onclick = function () {prev_pic();}function next_pic () {var newLeft = parseInt(wrap.style.left)-600;wrap.style.left = newLeft + "px";}function prev_pic () {var newLeft = parseInt(wrap.style.left)+600;wrap.style.left = newLeft + "px";}
值得注意的是,这里wrap.style.left是一个字符串,所以要转化为数字才能进行计算,而设定left时就要加上px成为一个字符串了。在第一页时,left值为-600,所以我们可以点击一次上一张,但是当再点击一次时,就出现了空白。同样的,下一张点击,到-3600是最后一张,就不能再继续点击了。也就是说,当我们点击下一张到-3600px(这是第一张图片)时,我们需要下次跳转到第二张,即-1200px;这样才能正常跳转;同理,当我们点击上一张到0px(这是第五张图片时),我们希望下次跳转到第四张,即-2400px;按照这样的思路我们重新将next_pic和prev_pic函数修改如下:
function next_pic () {var newLeft;if(wrap.style.left === "-3600px"){newLeft = -1200;}else{newLeft = parseInt(wrap.style.left)-600;}wrap.style.left = newLeft + "px";}function prev_pic () {var newLeft;if(wrap.style.left === "0px"){newLeft = -2400;}else{newLeft = parseInt(wrap.style.left)+600;}wrap.style.left = newLeft + "px";}
这时,图片可以循环播放了!
如果希望自动播放,使用setInterval()即可,如下所示:
var timer = null;function autoPlay () {timer = setInterval(function () {next_pic();},1000);}autoPlay();
如果想要仔细看其中一个图片的时候,我们希望轮播图停止播放,只要clearInterval()即可,如下:
var container = document.querySelector(".container");container.onmouseenter = function () {clearInterval(timer);}container.onmouseleave = function () {autoPlay(); }
现在,只要我们把鼠标移入轮播图中,这时轮播图就不会播放了。而移开鼠标之后,轮播图自动播放。
但是到目前为止,轮播图下方的小圆点还没有动,现在就实现它。
原理:即设置buttons的index初始值为0,即第一个span的class为on,然后触发next_pic函数时,index加1,当触发prev_pic函数时,inex减1, 并设置当前index的小圆点的class为on, 这就要求index必须设置为全局变量,才能保证它在每一个函数的作用域中。
添加showCurrentDot函数:
var index = 0;var dots = document.getElementsByTagName("span");function showCurrentDot () {for(var i = 0, len = dots.length; i < len; i++){dots[i].className = "";}dots[index].className = "on";}
在next_pic中添加代码:
index++;if(index > 4){index = 0;}
在prev_pic中添加代码:
index--;if(index < 0){index = 4;}showCurrentDot();
这样,轮播图就可以自动切换,并且小圆点也在随着图片的变化而变化了。
但是,这距离我们经常看到的轮播图还有一定距离 - - - 当点击小圆点时, 就可跳转到相应图片。 实现原理即: 点击小圆点,就使wrap的Left变成相应的值。代码如下:
for (var i = 0, len = dots.length; i < len; i++){(function(i){dots[i].onclick = function () {var dis = index - i;if(index == 4 && parseInt(wrap.style.left)!==-3000){dis = dis - 5; }//和使用prev和next相同,在最开始的照片5和最终的照片1在使用时会出现问题,导致符号和位数的出错,做相应地处理即可if(index == 0 && parseInt(wrap.style.left)!== -600){dis = 5 + dis;}wrap.style.left = (parseInt(wrap.style.left) + dis * 600)+"px";index = i;showCurrentDot();}})(i); }
原理就是当点击到小圆点时,得到相应的i值,这个i值也就是span的index值,我们拿他和全局变量index作比较,然后重新设置wrap.style.left的值,然后把i值复制给全局变量index,最后显示当前的小原点即可。值得注意的是:这里涉及到了闭包的概念,如果直接使用for循环,则不能得到正确的结果。
最终代码:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>轮播图</title><style>* {margin:0;padding:0;}a{text-decoration: none;}.container {position: relative;width: 600px;height: 400px;margin:100px auto 0 auto;box-shadow: 0 0 5px green;overflow: hidden;}.container .wrap {position: absolute;width: 4200px;height: 400px;z-index: 1;}.container .wrap img {float: left;width: 600px;height: 400px;}.container .buttons {position: absolute;right: 5px;bottom:40px;width: 150px;height: 10px;z-index: 2;}.container .buttons span {margin-left: 5px;display: inline-block;width: 20px;height: 20px;border-radius: 50%;background-color: green;text-align: center;color:white;cursor: pointer;}.container .buttons span.on{background-color: red;}.container .arrow {position: absolute;top: 35%;color: green;padding:0px 14px;border-radius: 50%;font-size: 50px;z-index: 2;display: none;}.container .arrow_left {left: 10px;}.container .arrow_right {right: 10px;}.container:hover .arrow {display: block;}.container .arrow:hover {background-color: rgba(0,0,0,0.2);}</style>
</head>
<body><div class="container"><div class="wrap" style="left: -600px;"><img src="./img/5.jpg" alt=""><img src="./img/1.jpg" alt=""><img src="./img/2.jpg" alt=""><img src="./img/3.jpg" alt=""><img src="./img/4.jpg" alt=""><img src="./img/5.jpg" alt=""><img src="./img/1.jpg" alt=""></div><div class="buttons"><span class="on">1</span><span>2</span><span>3</span><span>4</span><span>5</span></div><a href="javascript:;" class="arrow arrow_left"><</a><a href="javascript:;" class="arrow arrow_right">></a></div><script>var wrap = document.querySelector(".wrap");var next = document.querySelector(".arrow_right");var prev = document.querySelector(".arrow_left");next.onclick = function () {next_pic();}prev.onclick = function () {prev_pic();}function next_pic () {index++;if(index > 4){index = 0;}showCurrentDot();var newLeft;if(wrap.style.left === "-3600px"){newLeft = -1200;}else{newLeft = parseInt(wrap.style.left)-600;}wrap.style.left = newLeft + "px";}function prev_pic () {index--;if(index < 0){index = 4;}showCurrentDot();var newLeft;if(wrap.style.left === "0px"){newLeft = -2400;}else{newLeft = parseInt(wrap.style.left)+600;}wrap.style.left = newLeft + "px";}var timer = null;function autoPlay () {timer = setInterval(function () {next_pic();},2000);}autoPlay();var container = document.querySelector(".container");container.onmouseenter = function () {clearInterval(timer);}container.onmouseleave = function () {autoPlay(); }var index = 0;var dots = document.getElementsByTagName("span");function showCurrentDot () {for(var i = 0, len = dots.length; i < len; i++){dots[i].className = "";}dots[index].className = "on";}for (var i = 0, len = dots.length; i < len; i++){(function(i){dots[i].onclick = function () {var dis = index - i;if(index == 4 && parseInt(wrap.style.left)!==-3000){dis = dis - 5; }//和使用prev和next相同,在最开始的照片5和最终的照片1在使用时会出现问题,导致符号和位数的出错,做相应地处理即可if(index == 0 && parseInt(wrap.style.left)!== -600){dis = 5 + dis;}wrap.style.left = (parseInt(wrap.style.left) + dis * 600)+"px";index = i;showCurrentDot();}})(i); }</script>
</body>
</html>
总结:大体思路: 先创建一个div,限定其宽度和高度,overflow:hidden,且设置其position为relative。然后创建一个装图片的div,宽度为所有图片的总宽度,且设置其position为absolute,并且使其中的内容浮动,这样所有的图片就处于一行中。然后为了实现无缝滚动,所以需要在首尾分别添加一张过渡图片。 先添加两个按钮, 使其可以手动轮播,然后只需要添加一个定时器使其朝一个方向自动轮播即可,因为用户有时需要查看详情,所以当鼠标进入时就clear定时器,滑出再定时播放。为了更好地用户体验,我们再下面添加了一排小圆点,用户可以清楚地知道现在所处的位置, 最后, 利用闭包使得用户可以直接通过点击小圆点切换图片。
11.ajaxpost请求设置请求头格式内容?
ajax中POST请求中的Content-Type:
- application/x-www-form-urlencoded:这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。
- multipart/form-data: 这也是一个常见的 POST 数据提交的方式。我们使用表单上传文件时,就要让 form 的 enctype 等于这个值。
- application/json:用来告诉服务端消息主体是序列化后的 JSON 字符串。
- text/xml:相比于JSON,XML不能更好的适用于数据交换,它包含了太多的包装, 而且它跟大多数编程语言的数据模型不匹配。
12.git撤销操作?
- $ git revert [倒数第一个提交] [倒数第二个提交]:提交代码以后,你突然意识到这个提交有问题,应该撤销掉。原理:在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险。
- $ git reset [last good SHA]:如果希望以前的提交在历史中彻底消失,而不是被抵消掉,可以使用git reset命令,丢弃掉某个提交之后的所有提交。原理:让最新提交的指针回到以前某个时点,该时点之后的提交都从历史中消失。
- $ git commit --amend -m “Fixes bug #42”:提交以后,发现提交信息写错了,这时可以使用git commit命令的–amend参数,可以修改上一次的提交信息。原理:产生一个新的提交对象,替换掉上一次提交产生的提交对象。
- $ git checkout – [filename]:如果工作区的某个文件被改乱了,但还没有提交,可以用git checkout命令找回本次修改之前的文件。原理:先找暂存区,如果该文件有暂存的版本,则恢复该版本,否则恢复上一次提交的版本。
- $ git rm --cached [filename]:如果不小心把一个文件添加到暂存区,可以用该命令撤销。
13.git命令?
git init:初始化,创建一个git仓库,创建之后就会在当前目录生成一个.git的文件。
git add .:添加所有文件到缓冲区。
git add --all:添加所有文件到缓冲区,加all可以添加被手动删除的文件。
git commit -m “提交的说明”:提交缓冲区的所有修改到仓库。
git status :查看git库的状态。未提交的文件,分为两种,add过已经在缓冲区的,未add过的。
git reflog:查看命令历史:查看仓库的操作历史。
git branch :查看分支的情况,前面带*号的就是当前分支。
git branch 创建分支。
git checkout 分支名:切换当前分支到指定分支。
git checkout -b 分支名:创建分支并切换到创建的分支。
git merge 分支名:合并某分支的内容到当前分支。
git branch -d 分支名:删除分支。
15.linux常用命令?
reboot 重启
init 0 关闭系统
shutdown -h now 关闭系统
shutdown -r now 重启
ls 查看目录中的文件
ls -a 显示隐藏文件
ls -l 显示文件和目录的详细资料
mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
cp file1 file2 复制一个文件
16了解webpack吗?
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言,并将其打包为合适的格式以供浏览器使用。
17.你理解的前端开发?
前端最接近用户的程序员岗位,所做的一切都是用户直接看到的并且用到的,所以前端要站在用户的角度上思考问题。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Django从理论到实战(part41)--WSGIRequest对象
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y;文章目录WSGIRequest对象WSGIRequest对象常用属性WSGIRequest对象常用方法WSGIRequest对象Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函…...
2024/4/28 2:49:37 - docker push latest 和 保存历史版本
What is “latest” Tag? Docker images have a tag named latest which doesn’t work as you expect. Latest is just a tag with a special name. “Latest” simply means “the last build/tag that ran without a specific tag/version specified”. Just version your …...
2024/4/11 20:25:34 - Redis学习(一)——nosql概述
Nosql概述 单机MySql时代 90年代,一个基本的网站访问量不会太大,单个数据库完全够用。 那个时候,更多的去使用静态网页html,服务器根本没有太大的压力。 思考一下这个时候整个网站的瓶颈是什么?数据量太大,一个机器放不下了 数据的索引,一个机器内存也放不下 访问量(读…...
2024/4/28 21:32:43 - js中的数据属性
js中的数据属性应该有四种解释之前,我们来解析一下数据属性是啥意思,简单来说就是数据的属性??? 数据属性,就是对象中的属性的特性。在ES标准中定义了,这些特性只有在内部才能使用,描述了属性的各种特征。为了实现js的引擎而用的。因为才js终不能访问他们,所以他们被放…...
2024/4/27 3:40:12 - 【DM8】Linux下安装DM8+初始化+开启服务(命令行)
进行安装前准备工作,同图形化安装前准备工作,具体见Linux下图形化安装DM8使用命令行安装DM,选择安装语言并设置时区,选择典型安装选择安装目录,确认路径并安装安装结束后,初始化数据库开启数据库服务,分为前台方式和后台方式(注意:若开启新方式,需把另一个方式关闭,…...
2024/4/28 7:34:01 - 看这一篇IO多路复用面试专题就够了!最全面最详细的解答!
多路复用问题汇总BIO有什么缺陷? 针对C10K这样的需求,NIO靠什么解决问题? 多路复用操作系统函数select(…)工作原理? 多路复用操作系统函数select(…)默认监听socket数量为什么是1024? 多路复用操作系统函数select(…)第一遍O(N)未发现就绪socket,后续再有某个socket就绪…...
2024/4/27 23:11:16 - 回溯解决24点问题
你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7] 输出: True 解释: (8-4) * (7-1) = 24 示例 2:输入: [1, 2, 1, 2] 输出: False 注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 …...
2024/4/28 19:14:22 - LeetCode-2. 两数相加
这是leetcode上的第2题 题目如下: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这…...
2024/4/18 4:44:56 - 结构型模式 01 装饰者模式
装饰模式Decorator 是继承方案的一个替代方案,提供比继承更多的灵活性。 在不改变原类文件以及不使用继承的情况下,动态地将功能附加到对象上,从而实现动态拓展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 动态的给对象添加一些额外的职责,就…...
2024/4/28 21:10:06 - 为什么函数调用要用“栈”来保存临时变量呢?
其实不一定非要用栈来保存临时变量,只不过如果这个函数调用符合后进先出的特性,基于栈的数据结构的特性,用它是最顺理成章的选择。 Tips: 从调用函数进入被调用函数,对于数据来说,变化的是什么呢? 是作用域。所以根本上,只要能保证每进入一个新的函数,都是一个新的作用…...
2024/4/11 20:25:26 - C# 循环问题-交替输出
现在有两个数组,A和B.要求你从第一个元素开始,交替依次输出这两个数组的元素.并且这两个数组长度不确定,在长度不确定的情况下一方数组打印完要继续打印另一个数组剩余的元素。打印顺序固定为ABAB. 例如这两个数组 String[] A = { "1", "2", "3"…...
2024/4/16 1:46:57 - kafka学习(二)--topic 的增删查操作
kafka 的 topic 支持增(create)删(delete)改(alter)查(describe)操作。./kafka-topics.sh [--help] 可以查看 kafka-topics 命令的使用方法注意:敲命令的时候不要敲错否则会报错还不知道自己错哪儿了 ,比如这样比如这样为此还专门看一下下载的版本,确认是稳定版没…...
2024/4/22 7:32:41 - 前端调用后台tp6验证码的方法
环境前端:uni-app后端:thinkphp6在做前端登录页面时,想在登录页面调用后端thinkphp6的验证码功能,于是尝试前端通过后端的api接口获取captcha的图片地址。尝试的方法是设置后端的api方法getCaptcha,在方法中通过调用captcha_src()后,可以获得图片地址,然后再返回给前端调…...
2024/4/11 20:25:23 - liunx学习笔记
2020年8月22日,开始学习liunx系统的一天,liunx系统的内容有很多,大致可以分为五个阶段: 第一个阶段:熟练使用 Linux 命令行 第二个阶段:通过系统调用或者 glibc,学会自己进行程序设计 第三个阶段:了解 Linux 内核机制 第四个阶段:阅读 Linux 内核代码,聚焦核心逻辑和…...
2024/4/26 14:52:57 - MySQL服务正在启动或停止中,请稍候片刻后再试一次【解决方案】
参考博文...
2024/4/12 21:01:57 - css Position(定位) [第八天]
文章目录position文档流static(静态定位)fixed(相对浏览器窗口是固定位置)relative(相对其正常位置)absolute(绝对定位)sticky(粘性定位)重叠的元素(z-index) position position 属性指定了元素的定位类型。 position 属性的五个值:static relative fixed absolut…...
2024/4/10 11:44:17 - 学习笔记(8):Python数据清洗实战入门-数据筛选
立即学习:https://edu.csdn.net/course/play/26990/361123?utm_source=blogtoedu路径修改:os.chdir(r路径)数据的结构 df.info()#定位为标签 不是指针columns 列rows 行df.loc[3:4]...
2024/4/18 6:00:01 - Datawhale-机器学习算法-基于决策树的分类预测
Datawhale-机器学习算法-基于决策树的分类预测 应用场景 由于决策树模型中自变量与因变量的非线性关系以及决策树简单的计算方法,使得它成为集成学习中最为广泛使用的基模型。梯度提升树(GBDT),XGBoost以及LightGBM等先进的集成模型都采用了决策树作为基模型,在广告计算、CT…...
2024/4/26 15:08:31 - Python数据挖局百度查询最新更新
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/8/22 13:07 # @Author : Jianhua Wang # @Site : # @File : 最新百度爬取并存入数据库代码.py # @Software: PyCharmimport requests import re import pymysqlheaders = {User-Agent: Mozilla/5.0 (…...
2024/4/14 17:45:52 - 35K入职华为那天,我哭了“知道失业这5个月我是怎么过的吗”
前言悲催的经历:先说一下自己的个人情况,计算机专业,17年本科毕业,一毕业就进入了“阿里”Java岗(进去才知道是接了个阿里外包项目,可是刚毕业谁知道什么外包不外包的)。更悲催的是:刚入职因为家里出现一些变故,没有精力和金钱去承担待业的成本,也就意味着不能失业,…...
2024/4/25 3:49:19
最新文章
- 知网怎么查重 知网查重的详细步骤
知网查重八个步骤:1. 访问官网,注册账号。2. 上传待查文档。3. 选择查重规则。4. 选择相似来源库。5. 提交查重任务。6. 等待查重结果。7. 获取查重报告。8. 下载查重报告。 知网查重的详细步骤 第一步:进入知网查重系统 打开浏览器&#x…...
2024/4/28 21:51:49 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Kafka入门到实战-第五弹
Kafka入门到实战 Kafka常见操作官网地址Kafka概述Kafka的基础操作更新计划 Kafka常见操作 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流平台&…...
2024/4/26 16:59:59 - YUNBEE云贝-技术分享:PostgreSQL分区表
引言 PostgreSQL作为一款高度可扩展的企业级关系型数据库管理系统,其内置的分区表功能在处理大规模数据场景中扮演着重要角色。本文将深入探讨PostgreSQL分区表的实现逻辑、详细实验过程,并辅以分区表相关的视图查询、分区表维护及优化案例,…...
2024/4/26 19:56:02 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/4/28 4:04:40 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/4/28 12:01:04 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/4/28 16:34:55 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/4/28 18:31:47 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/4/28 12:01:03 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/4/28 12:01:03 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/4/28 12:01:03 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/4/28 16:07:14 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/4/27 21:08:20 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/4/28 9:00:42 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/4/27 18:40:35 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/4/28 4:14:21 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/4/27 13:52:15 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/4/27 13:38:13 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/4/28 12:00:58 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/4/28 12:00:58 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/4/27 22:51:49 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/4/28 7:31:46 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/4/28 8:32:05 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/4/27 20:28:35 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57