经常有新手同学抱怨说sencha touch的项目加载速度为什么这么慢,经常要10秒左右的时间甚至更多,

  大家都知道,sencha touch开发的项目中引用了大量的js文件,当我们打开项目时,st的项目会一个一个地加载这些js文件,这样就造成了项目加载速度慢,如果是web远程访问,还会产生大量的http请求影响加载速度,增加服务器压力。

  所以,我们的项目需要使用sencha cmd来进行打包压缩,通过sencha cmd打包压缩的项目,其中引用到的js(app.json中配置的或是项目中通过models、views、controls、requires这些方式引用的js文件)全部合并压缩成一行js代码,并且会对代码中的变量也进行压缩,大幅度降低js文件的大小,加快js的加载速度,减少http请求,同时它也会对css文件进行压缩.

  不过要使用sencha cmd工具来打包压缩项目,前提是你的项目是通过sencha cmd工具创建出来的,因为cmd工具压缩项目的时候要读取项目生成时的一些配置文件,当然你也可以手动去配置这些文件,下面我们以sencha touch 入门系列 (三)sencha touch 项目创建中创建的项目为例,

我们具体讲解下如何打包压缩sencha touch的项目:

  1.首先打开指令窗口,将路径定位到你的项目中去,我的项目为MyFirst, 如图所示:

  

  接着,我们来执行sencha cmd的打包指令就可以了,

  sencha cmd有4个打包指令,所有的打包命令执行后,默认都会在项目的build文件夹下生成一个对应的文件夹,下面我们来看下指令

  1. sencha app build testing:

  通过指令名称的testing,大家应该猜到了,这个指令是用来打包测试的,这个指令会将所有的js文件压缩到app.js中去,但是并不做压缩处理,用来让开发者在执行代码压缩前调试代码用的,指令执行后,会在项目的build文件夹下生成一个testing文件夹,里面即生成的压缩测试项目

  2.sencha app build package:

  这个指令只对项目进行打包压缩处理,指令执行后,会将所有的js压缩合并并进行变量转换,所有的js文件的代码会被压缩成一行放置在app.js中,并在build文件夹下生成一个package文件夹,里面即生成的压缩项目。

  3.sencha app build production 或者 sencha app build:

  这两个指令的效果是一样的,跟package不同,生成的production主要是用来发布webapp的,除去压缩了js跟css文件外,它还配置了浏览器的离线缓存,只要你的项目访问了一次,以后每次访问都是读取的离线缓存中的内容

  4.sencha app build native:

  这个指令是用来将项目打包原生安装程序的,不过打包前需要配置下项目目录下的packager.json文件,如果配置错误或没有配置该文件,将不会生成安装程序,且不会报错,对于打包安装程序,一般就是sencha cmd方式的打包跟使用phonegap进行打包,后面我们会详细讲解,这里就不做多余的讲解了

以上就是打包的4种方式,这里给大家简单介绍下,希望大家知道自己的项目为什么会加载缓慢,后面我们还会有更加详细的教程

sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩的更多相关文章

  1. sencha touch 入门系列 (五)sencha touch运行及代码解析(上)

    由于最近项目比较忙,加之还要转战原生开发,所以很久没更新了,今天我们接着上一次的内容往下讲: 首先我们打开index.html,这是我们整个程序的访问入口,也是整个项目的引入地: <!DOCTY ...

  2. sencha touch 入门系列 (二)sencha touch 开发准备

    这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题.接下来我们就开始我们的sencha touch开 ...

  3. sencha touch 入门系列 (六)sencha touch运行及代码解析(下)

    接着上一讲,通过index.html里development.js对app.json里js资源文件的解析,app.js便被index.html引入了, app.js是整个项目的程序入口,在项目完成时使 ...

  4. sencha touch 入门系列 (四)sencha touch 新建项目目录结构解析

    通过上一章节的操作,我们的项目已经创建完成了, 大家通过http://127.0.0.1/MyFirst/应该都已经访问到了自己的应用, 接下来,我们展开我们项目,如图所示: 一.目录结构 1. .s ...

  5. sencha touch 入门系列 (三)sencha touch 项目创建

    通过上一章节的学习,我们的开发环境已经配置好了,接下来我们开始创建第一个sencha touch的项目,网络上很多sencha touch的教程都是手动搭建项目的, 不过手动搭建的项目缺少一些senc ...

  6. sencha touch 入门系列 (一)sencha touch 简介

    参考链接:http://mobile.51cto.com/others-278381.htm Sencha touch 是基于JavaScript编写的Ajax框架ExtJS,将现有的ExtJS整合J ...

  7. sencha touch 入门系列 (八)sencha touch类系统讲解(下)

    接着上一讲,我们通过一组代码来讲解一下st的类的一些属性: Ext.define("MyConfig",{ config:{ website:"http://127.0. ...

  8. sencha touch 入门系列 (九)sencha touch 视图组件简介

    对于一个普通用户来说,你的项目就是一组简单的视图集合,用户直接通过跟视图进行交互来操作你的应用,对于一个开发人员来说,视图是一个项目的入口,虽然大部分时候最有价值的部分是在model层和control ...

  9. sencha touch 入门系列 (七)sencha touch 类系统讲解(上)

    在mvc结构的基础上,sencha touch又使用了sencha公司为extjs4开发出来的类系统,在面向对象的编程语言中,类是对对象的定义,它描述了对象所包含的大量属性和方法. 跟面向对象语言类似 ...

随机推荐

  1. nginx的centos和rhel的yum配置安装

    Official Red Hat/CentOS packages To add NGINX yum repository, create a file named /etc/yum.repos.d/n ...

  2. [爬虫]Python爬虫进阶

    请跳转到以下页面查看: 爬虫进阶

  3. linux实现防止恶意扫描 PortSentry

    linux实现防止恶意扫描 PortSentry   脚本 open 摘要: 端口做为服务器的大门安全很重要,当服务器运行很多服务时并向外提供服务,为防止有人恶意侦测服务器用途,可使用portsent ...

  4. iOS开发小技巧--富文本字典集合中的Key都是OC中的常量字符串

  5. RSQLite 操作sqlite数据库

    RSQLite 可以在R中方便的创建sqlite数据库,并进行检索, 这个R包依赖于DBI包 github 上的地址:https://github.com/rstats-db/RSQLite gith ...

  6. CentOS系统命令

    系统命令 yum命令 yum makecache yum 生成缓存 yum list installed mysql* 查看有没有安装过*包 rpm -qa | grep mysql* 查看有没有安装 ...

  7. 内网DNS投毒技术劫持会话

    工具列表: tcpdump Ferret Hamster node closurether 拓扑环境: 攻击机:Kali 10.10.10.237 被攻击机: win7 10.10.10.232 因为 ...

  8. <OC>OC新特征array literals

    类似于java5提供的autoboxing功能.以前的写法:NSNumber * number = [NSNumber numberWithInt:1];NSArray * array = [NSAr ...

  9. windows cmd中查看某个命令所在的路径

    需求描述: 之前用linux环境下的which命令就能看到某个命令的绝对路径, 然后想在windows下的cmd中是否也能够查看到命令的绝对路径呢 操作过程: 1.windows环境下,通过where ...

  10. mysqldump工具,通过--where选项,导出指定表中指定数据?

    需求描述: 今天在使用mysqldump工具导出表的时候,考虑能不能导出满足条件的数据行,不要 将表都导出来,查找资料,通过--where选项,就可以实现目的,做个实验,在此记录下. 操作过程: 1. ...