一、开篇
源于单页web app应用的开发效率低下,最近了解了一下javascript MVC开发相关资料
之前对javascript的了解仅仅是停留在能较熟练的使用jquery上。《基于MVC的javascript web富应用开发》这本书入门还是比较不错的,不过书有点老了。
一大堆开源框架,backbone\canjs\agularjs\requirejs\seajs\zepto
一大堆概念,model\view\control\jsonp\route\ejs\依赖管理\异步加载\Commonjs\AMD
二、一切的一切其实都源于node.js的流行
一切的一切其实都源于html5标准和node.js流行。Web服务性能测试:Node完胜Java。
node.js到底是啥?如果开发过j2ee的同学都知道servlet,看看这段代码:
var http = require('http'); http.createServer(function handler(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');handler(req, res),这不就是doGet(HttpServletRequest req, HttpServletResponse res)吗。
那node.js和javascript MVC有啥关系呢?相信大家不会拿纯粹的servelt来开发大型的web应用,都会用到struts、springmvc等MVC框架。于是有了nodejs的web开发框架expressjs。expressjs有点类似于j2ee开发中的spring。
spring的核心是DI(依赖注入),那nodejs怎么加载模块的呢,于是有了CommonJS规范。
nodejs也少不了MVC,expressjs中都已经实现,有兴趣的同学可以详细看看。
nodejs也少不了ORM,框架也很多,大家自己google。
nodejs也少不了模板(类似velocity、freemarker),于是有了ejs标准,和各种开源实现。
三、前端开发中的MVC应用
nodejs的MVC和javascript前端的MVC,到底是前者影响了后者还是后者影响了前者,不得而知,我更倾向于是nodejs影响了javascript的开发模式。于是javascript的前端开发也开始使用MVC模式和模块化开发。
- MVC框架的选型
backbone\agularjs\canjs是我个人目前比较推荐的三个MVC开源框架,前面两种较流行,特别是agulajs势头很猛:
JavaScript MVC 框架技术选型
backbone更适合入门和概念学习,应用在PC端的web应用开发也和比较合适。
agularjs的概念很新,也很好。学习成本稍微高点,不像backbone那样包容。
canjs是更适用手机端的web应用开发也比较包容。
- js依赖和异步加载的选型
上面说道了commonjs。前端开发也有依赖的问题。而且js文件越来越多,不便于管理,于是AMD标准出现了。AMD是在commonjs标准上发展起来的,主要应用在客户端。requirejs是AMD的一个实现。也有commonjs的实现应用在前端的,那就是淘宝的seajs。
选requirejs还是seajs争论很大。我的建议是:
PC端用requirejs;
手机端最好目前都别使用(自己实现一个简单的异步加载就可以了,不需要模块化开发),如果应用庞大到非要模块化开发,那使用seajs更合适。
总结:
PC端javascript MVC开发框架:requirejs+backbone/agularjs+jquery
MOBILE端javascript MVC开发框架:seajs/自己实现异步加载+canjs/agularjs+zepto
四、不得不提的打包
模块化开发带来的好处不言而喻,但是对于前端还是如果不代码那是一场灾难,每个模块一个js文件,如此多的js文件加载是多耗时的一件事。requirejs和seajs都提供了打包方法:
grunt,javascript构建工具,类似java的ant
相关推荐
【标题】:“django框架学习笔记” 【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码...
在Java框架学习笔记中,涉及的知识点十分丰富,涵盖了Struts、Hibernate、Spring、Ajax等Java开发中非常核心的技术框架。下面我将分别对这些知识点进行详细解释。 1. Struts框架 Struts是一种用于开发Java EE应用...
在阅读《PureMVC学习笔记.docx》时,你可能会深入了解每个组件的工作原理,以及如何在实践中应用它们。这份文档可能包含了示例代码、最佳实践和常见问题解答,帮助你更好地理解和掌握PureMVC框架。通过学习和实践,...
这篇学习笔记将探讨这两个技术的基础和关键概念。 首先,JavaScript是一种轻量级的脚本语言,它主要在客户端运行,允许网页对用户交互做出实时响应。JavaScript的核心特性包括变量、数据类型(如字符串、数字、布尔...
### Java框架学习笔记 #### 第一章:框架技术概述 - **SSH框架组合**:SSH是Struts + Spring + Hibernate的简称,这三个框架在Java Web应用开发中非常常见,它们各自解决了不同的问题,并且能够很好地协同工作。 ...
在Web开发中,JavaScript常与库和框架结合使用,如jQuery简化了DOM操作,React和Vue.js用于构建用户界面,Angular则是一个完整的MVC框架。学习这些工具能提高开发效率,但理解JavaScript基础是使用它们的前提。 ...
### Ajax技术概述与Java框架学习笔记 #### 一、Ajax技术简介 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,...
"Web+HTML+JavaScript+Ajax学习笔记"这个主题涵盖了许多Web开发的核心概念和技术。通过深入学习这些笔记,你将能够创建动态、交互式的Web应用,并理解前后端如何协同工作。同时,持续学习和掌握新的Web技术,如框架...
在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...
例如,jQuery简化了DOM操作和事件处理,React.js和Vue.js提供了用于构建用户界面的组件化架构,Angular.js则是一个全面的MVC框架。这些工具使得开发者能更高效地开发复杂的应用。 此外,JavaScript也广泛应用于...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。本项目是北大青鸟的培训课程,旨在通过实践帮助初学者掌握使用Struts2框架开发租房网站的技能。 在...
Struts则是早期的MVC框架,虽然现在已不如Spring MVC流行,但在一些旧项目中仍有使用。 **六、PPT讲解与学习笔记** 配合PPT讲解和学习笔记,你可以更深入地理解MVC模式。PPT通常会通过图表和案例演示MVC的工作原理...
Struts是一个用于构建企业级Java Web应用程序的开源MVC框架,对于理解MVC设计模式和Java Web开发流程至关重要。而JavaScript则是网页开发中的重要脚本语言,用于实现客户端交互和动态效果。这些内容的整合,对于希望...
ExtJS 4是一款基于JavaScript的富客户端框架,用于构建交互式Web应用。MVC(Model-View-Controller)模式是其核心设计模式,用于组织和分离应用的不同部分,提高代码可维护性和可扩展性。本笔记源码主要展示了如何在...
在ASP.NET MVC框架下,我们可以轻松地创建RESTful API和分离关注点,从而实现更好的可测试性和可维护性。 在项目搭建过程中,首先需要配置开发环境,包括安装.NET Framework、Visual Studio或其他支持ASP.NET MVC的...
在.NET环境中,ASP.NET MVC框架提供了一种结构化的方式来组织代码,使代码更易于理解和维护。 接下来,我们将按照以下步骤构建基于这些技术的项目: 1. **环境准备**:确保安装了Visual Studio、.NET Framework...
基于Spring框架的云笔记设计与实现涉及多个IT领域的知识点,这些知识点包括但不限于Spring框架、Java...通过实现云笔记系统,改变了传统的笔记记录方式,新的方法使得用户学习更加便捷、快速地记录、分享和收藏笔记。
本学习笔记将深入探讨JavaScript的核心概念、语法结构以及在实际应用中的常见技巧。 一、JavaScript基础 JavaScript的基础包括变量、数据类型、操作符、语句和函数。变量用于存储数据,可以使用var、let或const...
Java部分,通过"韩顺平servlet与jsp_笔记与心得.doc"和相关的J2EE课程笔记,可以深入学习Java服务器端编程,包括Servlet和JSP的基础概念、生命周期、请求响应处理、会话管理以及MVC设计模式的应用。同时,"韩顺平....