使用seajs主要解决了现有项目前端开发中的如下问题:
- js文件依赖,js文件的加载顺序。
- js命名空间。
- js模块化开发。
- 业务模块的版本问题。
- 性能提升,主要是网络传输。
- js文件跨域异步加载问题。
- js、css文件打包和压缩合并。
简单的做了一个demo,项目使用maven构造,结构如下:
- webapp/resources:静态资源目录
- webapp/resources/js:js文件目录
- webapp/resources/js/core :业务模块目录,各个子模块单独构造。
- webapp/resources/js/core/hello:hello模块目录,包含package.json,独自构造。
- webapp/resources/js/core/user:user模块目录,包含package.json,独自构造。
- webapp/resources/js/modules:第三方js库目录,不需要单独构造,使用spm构造完成之后放入当前目录即可。
- WEB-INF/views:前端页面目录
具体的seajs应用、相对于传统js开发的改进及api,参考:http://seajs.org/docs/ 。 以下主要说明seajsdemo中的相关实践内容。
引入seajs依赖。sea.js和seajs-warp.js,其中seajs-wrap.js只需要在开发阶段引入,主要为了给每个js模块动态添加define(function(require , exports , module )){ }的包装。使用spm压缩合并后能够为每个js文件添加define包装,所以压缩完成之后部署时不要引入seajs-wrap.js。
模块配置管理。在一个单独的js配置文件(seajs.config.js)中进行配置,主要配置了三部分内容,分别是第三方js库、业务模块库和业务模块basepath。第三方js库:通过绝对路径配置,在开发和生成环境中不需要改变,能够启用浏览器缓存;业务模块库:主要为了方便不同模块的相互引用,使用相对路径配置。在打包时,只合并本模块内部的js,忽略其它模块的js依赖,在生产环境中每个业务模块库单独加载,降低模块之间的耦合;业务模块basepath:业务模块所处的根路径,如果启用了浏览器缓存,在版本升级时可以改变根路径目录,例如添加版本号目录,加载新的静态文件。参考如下:
seajs.config({
//use absolute path for the third lib
alias: {
//the third lib
'jquery': '/seajsdemo/resources/js/modules/jquery/1.9.1/jquery' ,
'cookie': '/seajsdemo/resources/js/modules/jquery_cookie/0.0.1/jquery.cookie' ,
//local lib
'user' : 'user/main'
},
//base path for business module
base: '/seajsdemo/resources/js/core/0.0.1',
charset: 'utf-8'
});
业务模块管理。每个业务模块一个文件夹,并且包含一个package.json,在package.jso中需要指定name、spm.main和spm.buildArgs,其中name是打包之后输出文件的目录,必须和模块文件夹名称相同;spm.main指定需要模块入口的js文件;spm.buildArgs是spm build的参数,需要指定在seajs.config.js中忽略的第三方库和其他业务模块库。参考如下:
{
"name": "hello",
"spm": {
"main": "index.js",
"buildArgs": "--ignore jquery,user,cookie"
}
}
业务模块打包。打包工具spm的安装参考 http://lpyyn.iteye.com/blog/2232659 ,为了方便每个模块的打包,在模块文件夹同级目录下建了一个打包脚本package.sh,能够将各个模块打包到指定的目录下。参考如下:
#!/bin/bash
# package module js
spm build -I ./hello -O ../dist
spm build -I ./user -O ../dist
echo 'spm complete .'
注: 附件seajsdemo.rar解压后放到tomcat下运行。
- 大小: 147 KB
分享到:
相关推荐
总结来说,【前端项目-seajs.zip】是一个基于Seajs的前端项目,它提供了Web应用的模块化管理和加载方案。通过学习和使用Seajs,开发者可以更好地组织代码,提高代码质量,并且便于团队协作和项目维护。在实际开发...
《基于seaJS的客户关系管理系统的设计与实现》 在当今数字化时代,客户关系管理(CRM)系统已经成为企业不可或缺的一部分,它帮助企业高效管理客户信息、跟踪销售进度、优化客户服务,从而提高企业的竞争力。本项目...
同时,由于是基于Grunt的,你可以和其他Grunt插件一起使用,如uglify进行代码压缩,jshint进行代码检查,构建完整的前端开发工作流。 然而,值得注意的是,随着前端技术的发展,现在更多地推荐使用Webpack或者...
mSlide是一款专为移动端WebAPP设计的动画插件,它巧妙地结合了seajs、zepto和backbone这三大前端技术框架,为开发者提供了丰富的界面切换动画效果,使得在多页面开发模式下,用户在浏览移动应用时能够享受到更加流畅...
Seajs是中国开源社区推出的一款基于模块化开发的...通过合理配置和使用,可以提高前端开发效率,增强代码可维护性。理解并掌握Seajs的下载、配置、模块化、路径管理以及插件使用,将有助于构建高效、有序的前端项目。
总之,Seajs作为一款强大的前端模块化解决方案,可以帮助开发者组织和管理JavaScript代码,提升开发效率和代码质量。通过深入学习Seajs手册并实践Demo,你将能够熟练地运用它来构建现代Web应用。
总结,grunt-react-seajs是前端开发中一种高效的解决方案,它通过自动化工具Grunt,结合React的组件化思想和Sea.js的模块加载机制,为开发人员提供了一套完整的前端开发流程。通过深入理解和熟练运用这个库,可以...
本文将深入探讨这两个技术在.NET环境中的实际应用,并结合Ajax技术,为前端开发提供强大的支持。 首先,让我们了解下Knockout.js。Knockout是一个轻量级的MVVM(Model-View-ViewModel)库,它使得双向数据绑定变得...
SeaJS提供了一个基于CMD(Common Module Definition)规范的模块化解决方案。 2. CMD规范: CMD是SeaJS推动的一种模块化规范,与AMD(Asynchronous Module Definition)并行存在。CMD强调的是延迟执行和就近依赖...
Seajs是中国著名的前端模块加载器,它借鉴了CommonJS规范,但针对浏览器环境进行了优化,使得在浏览器端也能实现模块化的开发方式。...同时,这也有助于理解其他基于CMD的项目,提升前端开发技能。
Seajs 是一个轻量级的前端模块加载器,它的出现是为了在浏览器环境中支持 CommonJS 规范,使得前端开发可以采用模块化的开发方式,提高代码的可维护性和复用性。下面将详细介绍 Seajs 的核心概念、工作原理以及如何...
总结来说,这个“Node.js + Sea.js + Grunt 标准资源”组合提供了一种高效、模块化的前端开发方案,利用Node.js的强大扩展性,结合Sea.js的模块化管理和Grunt的自动化构建,可以极大地提高开发效率和代码质量。...
本项目是一款采用JFinal框架、Bootstrap前端框架和SeaJS库构建的排班管理系统源码。该系统以Java为主要开发语言,并融入了HTML、CSS、JavaScript等多种技术,包含833个文件,其中HTML文件264个,CSS文件173个,PNG...
通过深入学习和实践"seajs-flbox",你将掌握如何利用Sea.js进行前端模块化开发,并能灵活运用Flbox组件,提升你的前端开发技能。在实际项目中,你可以结合这些知识点,创建高效、可维护的前端应用。
随着技术的进步,前端框架如jQuery、ExtJS、SeaJS和Bootstrap等应运而生,它们简化了开发过程,解决了跨浏览器兼容性问题,使得前端开发更高效。 响应式布局基于Bootstrap框架,能够自动适应不同设备的屏幕尺寸,...
根据提供的简历模板内容,我们可以提炼出前端开发领域的重要知识点及相关经验要求。以下是对这些知识点的详细阐述: ### 一、专业技能 #### 1. **JavaScript及其相关库** - **DOM/BOM操作**:DOM(文档对象模型)...
使用 创建基于seajs和less的前端开发工作流程. 什么是前端工作流 随着web的日益发展,前端的工作越来越繁多,使用的工具也越来越多 目前一个基本的web开发流程类似下面的结构 1、建立项目,梳理目录结构 2、coding.....
本文档总结了作者在前端开发领域的一年来的经验总结,涵盖了 jQuery、模块化、CSS、Nodejs 等多方面的知识点。 一、jQuery: * 作者从原生 JS 开始学习前端开发,后来了解了 jQuery,并将其作为主要的开发工具。 *...
王保平作为支付宝前端开发部的高级技术专家,他在分享中讨论了在新时代下前端代码的组织方式以及类库构建的策略。这些内容对前端开发领域来说尤为重要,因为它们是决定项目可维护性、可扩展性和性能表现的关键因素。...