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

一般的网站需要多大的空间网络规划与优化技术学什么

一般的网站需要多大的空间,网络规划与优化技术学什么,济南的企业网站建设,大型门户网站开发方案前端开发中我们经常会通过监听某些事件来完成项目需求 1.通过监听 scroll 事件,检测滚动位置,根据滚动位置显示返回顶部按钮 2.通过监听 resize 事件,对某些自适应页面调整DOM的渲染(通过CSS实现的自适应不再此范围内)…

前端开发中我们经常会通过监听某些事件来完成项目需求
1.通过监听 scroll 事件,检测滚动位置,根据滚动位置显示返回顶部按钮
2.通过监听 resize 事件,对某些自适应页面调整DOM的渲染(通过CSS实现的自适应不再此范围内)
3.通过监听 keyup 事件,监听文字输入并调用接口进行模糊匹配

scroll事件

window.onscroll  = function () {//滚动条位置let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;console.log('滚动条位置:' + scrollTop);
}

在这里插入图片描述
从效果上,我们可以看到,在页面滚动的时候,会在短时间内触发多次绑定事件。

我们知道DOM操作是很耗费性能的,如果在监听中,做了一些DOM操作,那无疑会给浏览器造成大量性能损失。

下面我们进入主题,一起来探究,如何对此进行优化。

防抖:
通俗理解就是:延时处理,然后如果在这段延时内又触发了事件,则重新开始延时。
原理:对处理函数进行延时操作,若设定的延时到来之前,再次触发事件,则清除上一次的延时操作定时器,重新定时。

防抖实例:

let timer
window.onscroll=function(){if(timer){clearTimeout(timer)}timer=setTimeout(function(){//滚动位置let scrollTop=document.body.scrollTop|| document.documentElement.scrollTop;console.log('滚动条位置:' + scrollTop)timer=undefined},200)
}

实例效果:
在这里插入图片描述
函数封装:

/*** 防抖函数* @param method 事件触发的操作* @param delay 多少毫秒内连续触发事件,不会执行* @returns {Function}*/
function debounce(method,delay) {let timer = null;return function () {let self = this,args = arguments;timer && clearTimeout(timer);timer = setTimeout(function () {method.apply(self,args);},delay);}
}
window.onscroll = debounce(function () {let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;console.log('滚动条位置:' + scrollTop);
},200)

节流:
定义:触发函数事件后,短时间间隔内无法连续调用,只有上一次函数执行后,过了规定的时间间隔,才能进行下一次的函数调用。

原理:对处理函数进行延时操作,若设定的延时到来之前,再次触发事件,则清除上一次的延时操作定时器,重新定时。

let startTime =Date.now();//开始时间
let time =500;//间隔时间
let timer;
window.onscroll = function throttle(){let currentTime=Date.now();if(currentTime - startTime >= time){let scrollTop = document.body.scroll||document.documentElement.scrollTop;console.log('滚动条位置:' + scrollTop);startTime = currentTime;}else{clearTimeout(timer);timer=setTimeout(function(){throttle()},50)}
}

实例效果:每隔500毫秒触发一次事件
在这里插入图片描述
函数封装:

/*** 节流函数* @param method 事件触发的操作* @param mustRunDelay 间隔多少毫秒需要触发一次事件*/
function throttle(method, mustRunDelay) {let timer,args = arguments,start;return function loop() {let self = this;let now = Date.now();if(!start){start = now;}if(timer){clearTimeout(timer);}if(now - start >= mustRunDelay){method.apply(self, args);start = now;}else {timer = setTimeout(function () {loop.apply(self, args);}, 50);}}
}
window.onscroll = throttle(function () {let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;console.log('滚动条位置:' + scrollTop);
},800)

vue输入节流,避免实时请求接口
在做搜索的时候,当搜索页面只有一个输入框、没有确定按钮的时候,只能在用户输入时请求服务端,查询数据。这样会导致频繁的发送请求,造成服务端压力。解决这个问题,可以使用vue做输入节流。

1.创建一个工具类,debounce.js

/**** @param func 输入完成的回调函数* @param delay 延迟时间*/export function debounce(func, delay){let timerreturn (...args)=>{if(timer){clearTimeout(timer)}timer=setTimeout(()=>{func.apply(this, args)},delay)}}

2、在搜索页面使用

<template><div class="xn-container"><input type="text" class="text-input" v-model="search"></div>
</template><script>import {debounce} from '../utils/debounce'export default {name: 'HelloWorld',data () {return {search: ''}},created() {this.$watch('search', debounce((newQuery) => {// newQuery为输入的值console.log(newQuery)}, 200))}}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>.text-input {display: block;width: 100%;height: 44px;border: 1px solid #d5d8df;}
</style>
http://www.yayakq.cn/news/533737/

相关文章:

  • 织梦网站后台管理wordpress免费主题企业
  • 私人装修接单网站seo1搬到哪里去了
  • wordpress+本地编辑郑州厉害的seo优化顾问
  • 自己做的网站被黑了怎么办长沙购物网站建设
  • 北京 工业网站建设公司排名做公司网站注意什么
  • 自己做网站的网址网站需要服务器
  • 男女做羞羞的事视频网站wordpress主题检测
  • 摄影网站功能设计com域名和cn域名
  • 安徽专业网站建设创新网站编程员工资
  • 大连公司注册专业网站设计制作优化排名
  • 吕梁做网站的公司怎样建设网站公司
  • win7本地架设网站德阳市建设管理一体化平台网站
  • 如何做网站策划搜狐快站绑定未备案的网站域名吗
  • wordpress建的网站打开太慢大连商城网站制作
  • 如何自己做彩票网站嵌入式开发培训班费用大概多少
  • 怎么免费推广自己网站alexa排名查询的特点
  • 大连零基础网站建设培训班建设网站公司那里好
  • c语言做网站账号登录系统朔州建设机械网站
  • 网站建设方案书内容管理制度做百度联盟怎么才能创建多个网站
  • 建站公司人员配置灰系网站
  • 高并发电商网站开发推广之家官网
  • 门户网站建设申请利用表单大师做网站
  • 制作一个自己的网站房地产新闻最新消息
  • 网站退出率开发一个app需要的技术
  • 网站的服务费账怎么做深圳网站设计合理刻
  • 网站建设推广市场wordpress打开页面慢
  • 家具网站开发目的手机优化大师下载安装
  • 国家企业公司网站建设世界排名第几
  • 网站主机免备案用vs2010做的网站
  • 免费的推广网站有哪些wordpress挖主题