利用text插件和css插件优化web应用
JavaScript的模块化开发到如今,已经相当成熟了,当然,一个应用包含的不仅仅有js,还有html模板和css文件。
那么,如何将html和css也一起打包,来减少没必要的HTTP请求数呢?
本文将和大家一起分享两个requrejs插件:text和css
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应用的更多相关文章
- Sublime Text 中使用Git插件连接GitHub
sublime Text的另一个强大之处在于它提供了非常丰富的插件,可以帮助程序员来适合大多数语言的开发.这些插件通过它自己的Package Controll(包管理)组件来安装,非常方便.一般常用的 ...
- 如何安装 Sublime text 编辑器相关的插件
Sublime是一个伟大的编辑器,具有可靠的基础功能,使编写代码变得愉快.您可以安装一个包管理器,以便于安装插件和添加新功能. 为什么使用包管理器(package manager) 包管理器可以方便地 ...
- 2分钟 windows下sublime text 3安装git插件:
12:35 2015/11/182分钟 windows下sublime text 3安装git插件:推荐博客:http://blog.csdn.net/naola2001/article/detail ...
- 10秒钟sublime text 3安装SVN插件
注意:此处我提前已经安装了towerSVN,你可能需要提前安装好 towerSVN,之前安装redis之后我才明白,安装插件时安装软件好像 是一个必要的步骤,也就是说安装插件只是让你能在这里使用你已 ...
- Sublime text 3安装svn插件
这几天在研究sublime text 3的使用,感觉还不错,现在想让他能够支持svn,所以就写一下怎么安装svn插件吧~ 首先先说一下这个官方的插件网站 点我进入~ 进入之后,最上边的第一个就是点击安 ...
- 给Sublime Text 2安装CTags插件
以Windows操作系统为例介绍安装过程: 安装ctags应用程序. 到CTags的官方网站下载最新版本,解压后将ctags.exe文件放到系统的搜索路径中. 安装Sublime Text 2的Pac ...
- Sublime text代码补全插件(支持Javascript、JQuery、Bootstrap框架)
Sublime text代码补全插件(支持Javascript.JQuery.Bootstrap框架) 插件名称:javascript-API-Completions 支持Javascript.J ...
- 利用jsPerf优化Web应用的性能
在前端开发的过程中,掌握好浏览器的特性进行有针对性的性能调优是一项基本工作,jsperf.com是一个用来发布基于HTML的针对性能比较的测试用例的网站,你可以在jsPerf上在线填写和运行测试用例, ...
- vue中使用第三方插件animate.css实现动画效果
vue中使用第三方插件animate.css实现动画效果1.首先先引入第三方类animated.css2.将你所需要动画的标签用包裹起来3.在transition元素中添加enter-active-c ...
随机推荐
- storm入门教程 第一章 前言[转]
1.1 实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率.正因为大家对信息实时响应.实时交互的需求,软件行业除了个人操作系统之外,数据库 ...
- linux命令——rmdir
rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.rm - r dir命令可代替rmdir rmdir [选项]... 目录... - p 递归删除目录dirname,当 ...
- 【LeetCode 208】Implement Trie (Prefix Tree)
Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...
- NiuTrans 日记 1
这些天把东北大学自然语言实验室的NiuTrans 系统搭建并按照例子将短语系统运行了一遍,写这个日记主要是为了以后能提醒自己在这其中遇到的问题. 环境:短语系统我是windows和linux都运行了, ...
- 分析特定类的python脚本
今天接触了下pyUSB,事先没看对象内部成员资料,直接用python的dir函数看了看pyUSB的内部构成.突然间想到自己可不可以写个简单的脚本,利用dir或其他函数遍历某个对象内部的所有成员,并打印 ...
- Ext列表展现--普通排序sortable--全局排序remoteSort(EXTJS 全局排序问题)
关于Ext的排序问题,一般涉及到两种方式. A.一种是默认的客户端排序机制,对当前页进行排序.sortable 这种排序模式不用多说,是人都会: 1.可以在Ext.grid.ColumnModel列模 ...
- Classes and Objects :类和对象(1)
类的定义:修饰符,class,类名,extends,逗号分隔的implements,类体{}规范的类名:首字母要大写,以后每个单词首字母都大写字段的定义:修饰符,类型,字段名按照封装的思想,字段通常定 ...
- linux进程调度函数浅析(基于3.16-rc4)
众所周知,进程调度使用schedule()函数来完成,下面我们从分析该函数开始,代码如下(kernel/sched/core.c): asmlinkage __visible void __sched ...
- 在fedora20下面手动为自己的安装程序创建桌面图标
(博客园-番茄酱原创) 在/usr/share/applications/下面创建destktop文件,用于产生桌面图标 创建文件:touch android-eclipse.desktop 编辑文件 ...
- 【Hadoop代码笔记】Hadoop作业提交之Child启动map任务
一.概要描述 在上篇博文描述了TaskTracker启动一个独立的java进程来执行Map或Reduce任务.在本篇和下篇博文中我们会关注启动的那个入口是org.apache.hadoop.mapre ...