首页 > 其他分享 >【翻译】动态包加载

【翻译】动态包加载

时间:2023-04-04 20:01:20浏览次数:68  
标签:翻译 Package app 应用程序 生成 pkg 动态 加载


原文:《Dynamic Package Loading

Sencha Cmd一直以来都支持包的概念,大型应用程序可通过包来封装类、样式和资源,然后通过Sencha Cmd将这些包打包到应用程序中。现在,又有了权限的方式(动态)来使用这些包。

如果现在已经使用了包,那会在应用程序的app.json文件中看到类似于以下的“requires”数组:

requires: [
    'dashboard',
    'settings',
    'users'
]

要切换到动态加载,只需要将部分或全部包移动到“users”数组并在“requires”数组添加以下新的包:

requires: [
    'package-loader'
],
uses: [
    'dashboard',
    'settings',
    'users'
]

在做了这些更改后,Sencha Cmd会在生成应用程序时,将应用程序和每个要使用的包生成独立的压缩包。在应用程序加载时,它将只包含自身的代码以及它所要求的包的代码,而不会包含所使用的包的代码。哪些已用包会像JavaScript、CSS或资源文件一样位于应用程序的生成文件夹中。

这样,就可应用程序准备好之后,使用Ext.Package.load()方法来加载这些包。在加载包时,会加载包所需的JavaScript和CSS等文件并会递归加载所需的包。

如果使用了Ext JS路由,则可以执行以下类似操作来加载包:

routes: {
    ':type': {
        before: 'loadPackage',
        action: 'showView'
    }
},

loadPackage: function (type, action) {
    var view = this.getView(),
        pkg = this.getPackageForType(type);

    if (!pkg || Ext.Package.isLoaded(pkg)) {
        action.resume();
    }
    else {
        view.setMasked({
            message: 'Loading Package...'
        });

        Ext.Package.load(pkg).then(function () {
            view.setMasked(null);

            action.resume();
        });
    }
},

使用动态包加载可为你的用户节省时间,他们不再需要等待应用程序的每个字节加,而实际上他们只需要加载大约20%的内容。它还可以为开发人员节省时间,因为Sencha Cmd不再需要加载所有代码来生成“dev”或同时监视所有代码。

有许多新的命令可以用来切换“app build”和“app watch”,以便控制要生成或监视的外部包。这就可让你将生成限制为当前正在使用的包从而缩短生成时间。

在运行sencha应用生成时,可添加--use选项来生成动态包:

sencha app build production --uses


标签:翻译,Package,app,应用程序,生成,pkg,动态,加载
From: https://blog.51cto.com/dqhuang/6169369

相关文章

  • 【翻译】Sencha Ext JS 6.7 的新增功能(节选)
    原文地址:https://www.sencha.com/blog/announcing-sencha-ext-js-6-7-and-tooling-ga/?utm_source=snceb&utm_medium=email&utm_campaign=sncextjs&utm_content=020719-sncextjs-6-7-releaseExtJS6.7终于拼接上了Classic工具包的最后一环,如锁定表格、多选组件等,除了不支持IE和RT......
  • 算法问题——动态规划和回溯算法问题
    回溯算法树形问题排列问题组合问题二位平面的回溯算法回溯递归问题树形问题17.电话号码的字母组合(全排列的问题)/***Copyright(C),2018-2020*FileName:letterCombinations*Author:xjl*Date:2020/3/2015:30*Description:给定一个仅包含数字2-9的字......
  • 算法训练——剑指offer(动态规划算法)摘要
    摘要一、动态规划原理与解题方法二、动态规划算法练习题目2.1跳台阶问题package动态规划算法;importorg.junit.Test;/***@ClassnameJZ69跳台阶问题*@DescriptionTODO*@Date2022/2/1118:54*@Createdbyxjl*/publicclassJZ69跳台阶问题{/**......
  • Dubbo——扩展(SPI)加载原理
    摘要Dubbo为了更好地达到OCP原则(即“对扩展开放,对修改封闭”的原则),采用了“微内核+插件”的架构。那什么是微内核架构呢?微内核架构也被称为插件化架构(Plug-inArchitecture),这是一种面向功能进行拆分的可扩展性架构。内核功能是比较稳定的,只负责管理插件的生命周期,不会因为系统功......
  • http信息头管理器-动态参数化
     5000个用户,需要用5000个不同的id  解决办法菜单栏--函数助手--random分别填写最小值,最大值点击“生成”,则默认复制直接去变量值的位置粘贴即可  - ......
  • 模拟mybatis接口动态注册过程
    思考  前文提到2种方式动态加载bean到容器,这里我们模拟一下mybatis手动注册Bean到容器的过程。模拟有啥好处,主要是为了方便你理解如何手动注册Bean的过程及mybatis的设计思想。毕竟这个才是spring的核心内容。    首先思考一下问题    如果你实现这个问题,你准备怎......
  • Revit附加模块Add-in Manager里一次性加载所有.dll文件
    publicResultExecute(ExternalCommandDatacommandData,refstringmessage,ElementSetelements){GlobalRevitData.commandData=commandData;AppDomain.CurrentDomain.AssemblyResolve+=CurrentDomain_AssemblyResolve;//在Execute方法体内添加这行......
  • 前端项目首页加载速度及项目性能优化
    提升首屏的加载速度或项目整体优化,是前端性能优化中最重要的环节,接下来跟大家分享一些常规且有效的首屏优化建议及做法。一、路由懒加载SPA项目,一个路由对应一个页面,如果不做处理,项目打包后,会把所有页面打包成一个文件,当用户打开首页时,会一次性加载所有的资源,造成首页加载很慢,降......
  • 前端项目首页加载速度及项目性能优化
    提升首屏的加载速度或项目整体优化,是前端性能优化中最重要的环节,接下来跟大家分享一些常规且有效的首屏优化建议及做法。一、路由懒加载SPA项目,一个路由对应一个页面,如果不做处理,项目打包后,会把所有页面打包成一个文件,当用户打开首页时,会一次性加载所有的资源,造成首页加载很慢,降......
  • app直播源码,css预加载旋转动画 与 流光字体
    app直播源码,css预加载旋转动画与流光字体一、预加载旋转动画Html<viewclass="concentric_round"></view>​cssbody{}.concentric_round{width:200rpx;height:200rpx;position:relative;position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);}.......