「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」
get 和 post的区别?
- GET在浏览器回退时无害,POST会再次请求
- GET产生的URL地址可以被收藏,而POST不可以
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会
- GET请求在URL中传输的参数是有长度限制的,而POST没有
- GET参数 通过 URL传递,POST放在request body里
- GET参数暴露在URL里,没有POST安全
- GET请求类似于查找的过程,用户获取数据,可以不用每次都与数据库连接,不会对服务器资源数据造成修改,所以可以使用缓存。post 不同,post 做的一般是修改和删除的工作,一般都会对服务器数据造成修改,所以必须与数据库交互,所以不能使用缓存。因此 get 请求适合于请求缓存。
图片的懒加载和预加载
-
预加载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染。简单理解:就是在使用该图片资源前,先加载到本地来,真正到使用时,直接从本地请求数据就行了。
-
懒加载:懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数。例如:img的data-src属性及懒加载:当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1 * 1px图片的路径(这样就只需要请求一次),当图片出现在浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来。这就是图片懒加载。
两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载。懒加载对服务器前端有一定的缓解压力作用,预加载 则会增加服务器前端压力。
mouseover 和 mouseenter 的区别?
mouseover 和mouseenter都是鼠标移到元素身上就触发,区别是
-
mouseover经过自身盒子触发,经过子盒子也触发,拥有冒泡特性 -
mouseenter只经过自身盒子触发,没有冒泡特性
mouseenter不会冒泡,搭配鼠标离开事件mouseleave同样不会冒泡
setInterval与setTimeout的区别
setInterval()方法可按照指定的周期来调用函数或者计算表达式(以毫秒为单位);
setTimeout()方法用于在指定毫秒数后再调用函数或者计算表达式(以毫秒为单位)。
setTimeout()方法只运行一次,也就是说当达到设定的时间后就出发运行指定的代码,运行完后就结束了,如果还想再次执行同样的函数,可以在函数体内再次调用setTimeout(),可以达到循环调用的效果。
setInterval()是循环执行的,即每达到指定的时间间隔就执行相应的函数或者表达式,是真正的定时器。