页面的懒加载

        'lazyQueue': {},
        'isVisiable': function(elem) {
            if (!elem) return false;
            // console.log(($(window).scrollTop()+"::"+($(elem).offset().top+$(elem).outerHeight()))+"::"+(($(window).scrollTop()+$(window).height())+"::"+$(elem).offset().top))
            return ($(window).scrollTop() <= ($(elem).offset().top + $(elem).outerHeight())) && (($(window).scrollTop() + $(window).height()) > $(elem).offset().top);
        },
        'lazyload': function(elem, htmlcode, item, cb) {
            elem.html(htmlcode.html);
            elem.css('display', 'block');
            if (elem && elem.length != 0) {
                var top = elem.offset().top;

                if (this.isVisiable(elem)) {
                    this.showImg(elem);
                    cb && cb.apply(this, arguments);
                    return;
                }
                if (this.lazyQueue[top]) {
                    this.lazyQueue[top].push({
                        'elem': elem,
                        'html': htmlcode,
                        'item': item,
                        'loaded': false,
                        'callback': cb
                    });
                } else {
                    this.lazyQueue[top] = [{
                        'elem': elem,
                        'loaded': false,
                        'callback': cb
                    }];
                }
            }

        },
        'showImg': function(elem) {
            var imgs = elem.find('img');
            for (var i = 0; i < imgs.length; i++) {
                $(imgs[i]).attr('src', $(imgs[i]).attr('data-src')).fadeIn(500);
            }
        },
 $(window).bind("scroll", function() {
        var Ad = LETV.using('Plugin').AD;
        if (Ad.lazySt)
            clearTimeout(Ad.lazySt);
        Ad.lazySt = setTimeout(function() {
            var curHeight = $(window).height() + $(window).scrollTop(),
                lazyQueue = Ad.lazyQueue;
            for (var key in lazyQueue) {
                if (lazyQueue.hasOwnProperty(key)) {
                    var item = lazyQueue[key];
                    if (!item) continue;
                    for (var j = 0; j < item.length; j++) {
                        var mItem = item[j];
                        if (mItem && !mItem.loaded && Ad.isVisiable(mItem.elem)) {
                            if (mItem.loaded === false) {
                                mItem.cb && typeof mItem.cb == 'function' && mItem.cb();
                                Ad.showImg(mItem.elem);
                                mItem.loaded = true;
                            } else {
                                mItem = null;
                            }
                        }
                    }
                }
            }

        }, 200);
    });

  

转载于:https://www.cnblogs.com/coding4/p/5864490.html

页面懒加载是指在用户访问网页时,不一次性加载所有的内容,而是根据需要动态加载页面的一部分内容。Vue中实现页面懒加载主要依赖于Vue Router的懒加载功能。 Vue Router是Vue官方提供的路由管理工具,它允许将不同路由对应的组件按需加载。在Vue Router中,我们可以通过使用import函数来实现组件的懒加载。 首先,在路由配置文件中,我们需要将需要懒加载的组件通过import函数引入,如下所示: const Home = () => import('@/views/Home.vue') 然后,我们可以在路由配置中将该组件指定给对应的路由,如下所示: const routes = [ { path: '/', name: 'Home', component: Home } ] 当用户访问该路由时,Vue Router会根据需要动态加载对应的组件,而不是在页面加载时一次性加载所有的组件。这样可以减少初始加载时的请求数量和页面的加载时间,在一定程度上提高用户的体验。 页面懒加载的原理是利用了浏览器的模块化特性和动态import函数的特性。Vue会将每个组件都打包成一个独立的模块,并根据需要动态加载模块。这样在页面初始加载时,只需要加载必要的组件模块,而不需要加载所有组件,从而提高了页面的加载速度。 总结起来,Vue中页面懒加载的原理主要是通过Vue Router的懒加载功能,利用浏览器的模块化特性和动态import函数来动态加载组件模块,从而提高页面加载的效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值