微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

循环“冻结”了我的网站 - 如何减少循环次数?

如何解决循环“冻结”了我的网站 - 如何减少循环次数?

我使用过滤方法,它做的一切都是正确的,但是在过滤之前我有很多循环来“冻结”我的网站一秒钟 - 两个。 我想改进它,但我不知道它是最好的。

在这种情况下,我使用 jQuery,但我可以将该代码转换为 Vanilla JS,这没问题。

所以,

当我选中多个筛选复选框中的一个时,该值将被推送到一组项目中,我使用其参数来过滤项目。

let choosenValuesDesk = []; // array of items
$(".aside-sortwidget input:checkBox").change(function() { // runs when is checkBox touched
            if($(this).is(":checked")) { // add to array
                ...
                choosenValuesDesk.push(chooseMe); // choose me is item,prepared for filtration,variable from above ...
                $(".desktop-slider__item").each(function(i,obj) { // loop slider items for filtration,btw,here is that "freeze"
                        choosenValuesDesk.map((val) => { // loop items from array above to filter items in each function
                                ...
                                if($(this).data().filter.includes(val)) { // if this slider item has value from chosen checkBox value in data attribute
                                    $(this).addClass("keep-this-slide"); // keep slider item
                                } else {
                                    $(this).removeClass("keep-this-slide");
                                    // else remove class and "hide" item...
                                }...
                        }
                }
            } else { // remove from array it's same process from above to uncheck checkBox
            }
});

顺便说一句。我使用了 slick-slider 过滤方法,这会不会有问题?

成功过滤的代码示例:

$(".desktop-slider")
    .slick("slickUnfilter")
    .slick("slickFilter",".keep-this-slide");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。