【问题标题】:Compress and ondemand script loading压缩和按需脚本加载
【发布时间】:2013-11-20 17:03:42
【问题描述】:

我正在开发一个分两步启动的 extjs 应用程序。一开始它会弹出一个登录和密码窗口,只加载必要的js资源。如果登录成功,它会通过加载所有剩余的 js 文件来启动视口。

在登录时它会加载 ext-all.js 和几个 app js 文件。 登录后,它会加载加载所需js文件的控制器。

问题是我想缩小和压缩js文件,但是使用sencha cmd工具时

>sencha 创建 jsb -a index.html -p app.jsb3 >sencha build -p app.jsb3 -d 。 >java -jar ycompressor.jar --type js -o app-all-compressed.js app-all.js

生成的 app-all.js 和 app-all-compressed.js 仅包含登录阶段所需的资源。

然后我尝试手动构建一个 jsb3 文件,该文件生成一个缩小和压缩的 post-all.js,包括手动通过视口(第二阶段启动)所需的 js,然后以这种方式成功通过登录后加载此文件: 登录成功(){ Ext.Loader.loadScript({ url: 'post-all.js', 范围:我, 加载:函数(){ //控制器加载 ...

问题是即使加载了 post-all.js,资源仍然未缩小。 资源在 post-all.js 中被正确压缩和压缩,但似乎 requires[" ..."] 加载了资源的未压缩副本,所以我将每个资源加载了 2 次​​p>

有什么想法吗?

谢谢

【问题讨论】:

    标签: javascript extjs extjs4 extjs4.1


    【解决方案1】:

    一次加载所有内容要容易得多。没有理由加载两次。

    • Visual : 即使你加载了所有的 javascript,你也只显示登录对话框。其余的,只有在成功登录后才会显示。
    • 安全性:如果您使用会话保护对所有服务器资源的访问,恶意用户可能能够显示用户界面的某些部分,但他永远无法查看任何数据或执行任何其他操作。
    • 加载时间:考虑到 ExtJs 库的大小,加载时间的增益将是最小的。

    这样您已经解决了您的问题,您可以享受使用 Sencha cmd 进行常规 ExtJs 部署的简单性。

    【讨论】:

    • 也许我不是很清楚.. 我不介意一次加载所有内容,问题是 sencha cmd 工具正在最小化登录窗口所需的资源,即使我包含在索引中。 html 整个缩小包,动态机制仍然强制重新加载未缩小的包。关于视觉,我不想显示视口,但由于控制器与它有依赖关系(对存储、视图、模型的引用),因此在加载控制器且未显示视口时缺少此类组件。所以这就是我推迟控制器加载的原因。
    猜你喜欢
    • 2010-10-27
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    相关资源
    最近更新 更多