全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 516|回复: 3
打印 上一主题 下一主题

大佬们 看一下这个代码有没有优化的地方

[复制链接]
跳转到指定楼层
1#
发表于 2023-3-23 13:09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://jsfiddle.net/lijie33402/mwv8qf3n/8/
推荐
发表于 2023-3-23 13:11:30 来自手机 | 只看该作者
嘴臭选手又来免费白女票人力了,楼主,你妈没了
2#
发表于 2023-3-23 13:10:54 | 只看该作者
以下是对代码进行的一些优化建议:

1. 使用Passive Event Listeners (PEL)来改进scroll事件的性能,避免滑动时出现卡顿。可以将第一个addEventListener中的选项改为{passive: true}。

2. 将isInViewPort函数中的viewWidth和viewHeight提取到函数外部,在函数之外只需计算一次即可,减少计算次数。

3. 将lazyloadThrottleTimeout变量的初始值设置为null,而不是undefined。

4. 将setTimeout的延迟时间从20毫秒调整为50毫秒,降低了计算频率,以优化代码的性能。

5. 将forEach中的回调函数改写成普通的for循环,这可以在某些浏览器中提高循环的速度。

根据以上优化建议,代码可重新编写为:

```
document.addEventListener("DOMContentLoaded", function() {
  var lazyloadImages = document.querySelectorAll(".img.lazy");
  var lazyloadThrottleTimeout = null;
  var viewWidth = window.innerWidth || document.documentElement.clientWidth;
  var viewHeight = window.innerHeight || document.documentElement.clientHeight;

  function lazyload() {
    if (lazyloadThrottleTimeout) {
      clearTimeout(lazyloadThrottleTimeout);
    }

    lazyloadThrottleTimeout = setTimeout(function() {
      for (var i = 0; i < lazyloadImages.length; i++) {
        if (isInViewPort(lazyloadImages[i])) {
          lazyloadImages[i].classList.remove('lazy');
        }
      }

      if (lazyloadImages.length == 0) {
        document.removeEventListener("scroll", lazyload, {passive: true});
        window.removeEventListener("resize", lazyload);
        window.removeEventListener("orientationChange", lazyload);
      }
    }, 50);
  }

  function isInViewPort(element) {
    const {
      top,
      right,
      bottom,
      left,
    } = element.getBoundingClientRect();

    return (
      top >= 0 &&
      top <= viewHeight &&
      left >= 0
    );
  }

  document.addEventListener("scroll", lazyload, {passive: true});
  window.addEventListener("resize", lazyload);
  window.addEventListener("orientationChange", lazyload);
});

```
4#
 楼主| 发表于 2023-3-23 13:21:33 | 只看该作者
她说是晒黑的 发表于 2023-3-23 13:11
嘴臭选手又来免费白女票人力了,楼主,你妈没了

你好 你妈了个大黑b,草你.妈 你.妈今晚就死了捏

傻狗 肏你马
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-8 06:55 , Processed in 0.058666 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表