压缩和按需脚本加载

时间:2013-11-20 17:03:42

标签: javascript extjs extjs4 extjs4.1

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

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

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


        >sencha create 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视口(第二阶段启动),然后以这种方式成功通过登录后加载此文件:< / p>


        onLoginSuccess(){

        Ext.Loader.loadScript({
        url: 'post-all.js',
        scope: me,
        onLoad: function() {
            //controllers loading
             ...

问题是即使加载了post-all.js,resuorce仍然是未加密的。 资源在post-all.js中被缩小并正确压缩,但似乎需要[“...”]加载资源的未分析副本,因此我每次加载资源2次

有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:0)

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

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

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