JavaScript的模块化开发到如今,已经相当成熟了,当然,一个应用包含的不仅仅有js,还有html模板和css文件。

那么,如何将html和css也一起打包,来减少没必要的HTTP请求数呢?

本文将和大家一起分享两个requrejs插件:textcss

1. html模板与text插件

我们在开发一个widget时,如果将html模板直接写在js文件中,将会很难维护,处理各种换行以及双引号就会让人抓狂,对于后续维护的人来说也是噩梦。

个人比较推荐的做法是将widget的html模板提取到一个独立的文件中,减少html与js的耦合,同时方便维护与管理。

那么,widget内部如何获取这个独立的html模板文件呢?如果直接在widget内部通过ajax加载,势必增加后续的维护成本。

这时text插件就上场了!

我们可以像这么做:

define([

  "text!./templates/login.html"//指向当前组件依赖的模板文件

],function(template /*html模板字符串*/){
//do something
//declare widget
});

当应用上线之前,我们需要打包这些widget,而text插件会将widget依赖的模板文件一并打包进去,模板文件将做为一个独立的字符串模块存在。

这样一来,我们就达到了两个目的:1.将html模板与js文件解耦 2.减少HTTP请求数

2. css文件与css插件

大部分widget都会有自己的样式,就像jquery-ui那样,每一个ui组件都有自己的样式文件。

某些情况下,我们希望css文件与js打包在一起加载,而不需要去html/head添加各种css文件引用,当使用的时候,我们只需要require这个widget就好。

这时,css插件就上场了。

define([

  "css!./css/login.css"

],function(){

      //这个时候,css文件已经被append到html/head中了,也就是说,你的widget依赖的样式已经就绪

  //declare widget

});

当我们打包这些widget的时候,css插件会将widget依赖的模板文件一并打包进去,同时可以自动优化css,比如去除空格,合并重复样式等等。

这样一来,我们就达到了两个目的:1.自动加载css依赖 2.减少HTTP请求数

当然,text插件和css插件在打包时,还有很多参数可以配置,大家有兴趣的可以点击链接到Github去查看。

PS: 尊重他人原创,转载请务必注明来自http://www.cnblogs.com/Raoh/p/4204228.html

利用text插件和css插件优化web应用的更多相关文章

  1. Sublime Text 中使用Git插件连接GitHub

    sublime Text的另一个强大之处在于它提供了非常丰富的插件,可以帮助程序员来适合大多数语言的开发.这些插件通过它自己的Package Controll(包管理)组件来安装,非常方便.一般常用的 ...

  2. 如何安装 Sublime text 编辑器相关的插件

    Sublime是一个伟大的编辑器,具有可靠的基础功能,使编写代码变得愉快.您可以安装一个包管理器,以便于安装插件和添加新功能. 为什么使用包管理器(package manager) 包管理器可以方便地 ...

  3. 2分钟 windows下sublime text 3安装git插件:

    12:35 2015/11/182分钟 windows下sublime text 3安装git插件:推荐博客:http://blog.csdn.net/naola2001/article/detail ...

  4. 10秒钟sublime text 3安装SVN插件

    注意:此处我提前已经安装了towerSVN,你可能需要提前安装好 towerSVN,之前安装redis之后我才明白,安装插件时安装软件好像 是一个必要的步骤,也就是说安装插件只是让你能在这里使用你已 ...

  5. Sublime text 3安装svn插件

    这几天在研究sublime text 3的使用,感觉还不错,现在想让他能够支持svn,所以就写一下怎么安装svn插件吧~ 首先先说一下这个官方的插件网站 点我进入~ 进入之后,最上边的第一个就是点击安 ...

  6. 给Sublime Text 2安装CTags插件

    以Windows操作系统为例介绍安装过程: 安装ctags应用程序. 到CTags的官方网站下载最新版本,解压后将ctags.exe文件放到系统的搜索路径中. 安装Sublime Text 2的Pac ...

  7. Sublime text代码补全插件(支持Javascript、JQuery、Bootstrap框架)

    Sublime text代码补全插件(支持Javascript.JQuery.Bootstrap框架)   插件名称:javascript-API-Completions 支持Javascript.J ...

  8. 利用jsPerf优化Web应用的性能

    在前端开发的过程中,掌握好浏览器的特性进行有针对性的性能调优是一项基本工作,jsperf.com是一个用来发布基于HTML的针对性能比较的测试用例的网站,你可以在jsPerf上在线填写和运行测试用例, ...

  9. vue中使用第三方插件animate.css实现动画效果

    vue中使用第三方插件animate.css实现动画效果1.首先先引入第三方类animated.css2.将你所需要动画的标签用包裹起来3.在transition元素中添加enter-active-c ...

随机推荐

  1. maven学习系列第二课,关于springmvc的pop.xml的依赖的添加

    不说废话了,图的书序就是操作顺序 1. 2.

  2. Tasks Queues and Cron Jobs(任务队列和时钟守护作业)

    一个网络应用必须迅速响应网络请求,一般要小于1s,最好是几十微秒,以便为坐在浏览器前面的用户提供一个流畅的体验.这就给不了应用太多的时间来处理工作.有时会是有更多的工作要做而不是有时间来做它.< ...

  3. 迁移web.py项目至git@osc的项目演示平台

    1. 开启演示平台 选择WSGI,输入应用名称,即是演示网页的网址. 2. web.py代码迁移 将Python的site-packages目录下的web文件夹复制到代码目录下,与网页程序在同一个文件 ...

  4. Windows Azure Platform (一) 云计算的出现

    <Windows Azure Platform 系列文章目录> 最近的一年一直致力于微软云计算技术的推广和研究,对于微软的云计算平台Windows Azure Platform有一定的了解 ...

  5. hadoop测试环境主配置简例

    1,mapred-site.xml 此配置文件主要是针对mapreduce的配置文件,配置的是jobtracker的地址和端口; <configuration> <property& ...

  6. CentOS_6.5 64位系统,安装git服务器+客户端

    ================ git服务器安装 ==================== CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis## . ...

  7. log4j中的MDC和NDC

    NDC和MDC NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信 ...

  8. 【Java】IO技术的使用——用IO实现大文件的复制

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827481.html 用IO进行文件复制,实质就是用FileInputStream链接要复制的文件,按一定规模 ...

  9. oracle 中控制文件中到底记录了哪些信息

     oracle 控制文件中的信息  oracle 11g                                             oracle 10g   DATABASE       ...

  10. 修改mysql字符编码出现Job failed to start解决办法

        从网上找到如下资料: $sudo gedit /etc/mysql/my.cnf [client]下添加: default-character-set=utf8 [mysqld]下添加: de ...