zoukankan      html  css  js  c++  java
  • mui webview 预加载

    所谓的预加载技术就是在用户尚未触发页面跳转时,提前创建目标页面,这样当用户跳转时,就可以立即进行页面切换,节省创建新页面的时间,提升app使用体验。mui提供两种方式实现页面预加载。

    方式一:通过mui.init方法中的preloadPages参数进行配置

    mui.init({  // 可同时加载一个或者多个界面
        preloadPages:[ //加载一个界面
        
            url:'a.html'
            id:'a'
            styles:{},//窗口参数 
            extras:{},//自定义扩展参数
            subpages:[{},{}]//预加载页面的子页面 
        },{ // 可加载另外一个界面,不需要可直接删除
            url:'b.html'
            id:'b'
            styles:{},//窗口参数 
            extras:{},//自定义扩展参数
            subpages:[{},{}]//预加载页面的子页面 
        }
        ]
    });

     


    方式二:通过mui.preload方法预加载,一次只能预加载一个页面,若需加载多个webview,则需多次调用mui.preload()方法;

    mui.plusReady(function(){
        var productView = mui.preload({
            url: 'list.html',
            id: 'list',
        });
        console.log(productView); //获得预加载界面的对象
    });
     
    页面显示

    <!doctype html>
    <html>

    <head>
    <meta charset="UTF-8">
    <title></title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <link href="css/mui.min.css" rel="stylesheet" />
    </head>

    <body>
    <button type="button" id="btn_open">打开预加载的页面</button>
    <script src="js/mui.min.js"></script>
    <script type="text/javascript">
    mui.init();
    var page = null;
    mui.plusReady(function() {
    //预加载页面mui.preload必须放在plusReady事件中
    page = mui.preload({
    url: 'preload_sub.html',
    id: 'preload_sub',
    extras: {
    name: 'durant'
    }
    });

    })


    document.getElementById("btn_open").addEventListener('tap', function() {
    //预加载仅会提前创建webview,并不会默认打开,因此需要再使用mui.openWindow方法打开对应窗口,才会看到预加载效果。
    if(page) {
    //方法1:直接调用预加载页面对象page的show方法
    //page.show();

    //方法2:mui.openWindow
    //mui.openWindow('preload_sub');//简写,通过ID打开指定页面
    mui.openWindow({
    url: 'preload_sub.html',
    id: 'preload_sub'
    }) //亦可写详细的参数

    //方法3:getWebviewById(),通过ID找到webview,再调用show()方法
    //var wv = plus.webview.getWebviewById('preload_sub'); //请在plus ready后再调用plus api,不一定非得写在plusReady事件中
    //console.log(page == wv) //true,page就是'preload_sub'所对应的webview
    //wv.show();
    }
    })
    </script>
    </body>

    </html>

  • 相关阅读:
    Pandas缺失值处理
    文件读取与存储
    DataFrame运算
    C++11 不抛异常的new operator
    In p = new Fred(), does the Fred memory “leak” if the Fred constructor throws an exception?
    method chaining
    C++中的运算符重载
    Why am I getting an error converting a Foo** → const Foo**?
    The constness of a method should makes sense from outside the object
    Virtual Friend Function
  • 原文地址:https://www.cnblogs.com/honeynm/p/12372120.html
Copyright © 2011-2022 走看看