codecamp

Blend 页面预加载

概述

Layer和LayerGroup接口中预留有页面预加载参数。开发者通过配置该参数可以控制页面在后台预加载、控制页面呈现,页面切换速度更快,增强了用户在移动端上获得的浏览体验。

Blend 页面预加载

Layer预加载

BlendUI中Layer提供了预加载参数。配置方法如下:

Blend.ui.layerInit("页面id",function(dom){
    var layer = new Blend.ui.Layer({
         "id": "layerId",
         "url": "layer.html",
         "active": false   //预加载参数
    });
});

一个实例:

document.addEventListener("blendready", function () {
    Blend.ui.layerInit("0", function (dom) {
        $('#btn-preload', dom).click(function () {
            var layer1 = new Blend.ui.Layer({
                "id": "layerId1",
                "url": "layer.html",
                "active": false,   //禁止预加载
                "duration":200
            });
            layer1.in();  //当禁止预加载时,需通过in()方法显示
        });
        $('#btn-unpreload', dom).click(function () {
            var layer2 = new Blend.ui.Layer({
                "id": "layerId2",
                "url": "layer.html",
                "active": true,  //允许预加载,页面立即呈现
                "duration":200
            });
        });
    });
});

active参数值为false时,如果需要显示页面,需要通过in()方法;当active参数值为true时,页面将直接加载显示。

LayerGroup预加载

BlendUI中LayerGroup提供了预加载参数。配置方法如下:

Blend.ui.layerInit("页面id",function(dom){
    var tabs = new Blend.ui.LayerGroup({
          id: "tabs",
          layers: [{
               "id": 'contentA',
               "url": 'contentA.html',
               "autoload": true  //预加载参数
          }]
    });
});

一个实例:

document.addEventListener("blendready", function () {
    Blend.ui.layerInit("0", function (dom) {
        var tabs = new Blend.ui.LayerGroup({
            id: "tabs",
            layers: [
                {
                    "id": 'contentA',
                    "url": 'contentA.html',
                    "active": true
                },
                {
                    id: 'contentB',
                    "url": 'contentB.html',
                    "autoload": false //禁止预加载
                }
            ]
        });
    });
});

页面B禁用了预加载,仅当用户滑动到页面B时才进行页面加载;如果页面B有大量内容需要加载时,可以设置autoload参数值为true,页面B将会在用户浏览其他页面时预加载,减少了用户在页面切换浏览时所需等待的时间。

示例源码

在线获取Layer预加载源码

在线获取LayerGroup预加载源码

Blend 页面切换
Blend 幻灯片使用
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }