一、开篇
源于单页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
相关推荐
NULL 博文链接:https://quarterlifeforjava.iteye.com/blog/2086978
ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4...
java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...
主要介绍了Backbone.js框架中简单的View编写学习笔记,Backbone是JavaScript的一款高人气MVC框架,需要的朋友可以参考下
Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架 java之父gosling 1990 sun启动 绿色计划 1992 创建oak语言-->java 1994 gosling参加硅谷大会演示java功能,震惊世界 1995 sun正式发布java第一个版本,...
{2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...
FrameWork [java] 结构,框架 ['freimwә:k] Generic [java] 泛型 [dʒi'nerik] goto (保留字) 跳转 heap n.堆 [hi:p] implements (关键字) 实现 ['implimәnt] import (关键字) 引入(进口,输入) Info n.信息 ...
JavaScript工作原理 前端必知的HTTP知识 前端缓存机制 前端跨域 前端安全 前端模块化 前端工程化:工具、框架、流程、构建、部署、性能、监控 函数式编程 [设计模式]:MVC/MVVM/MVP 前端开发工具 构建工具 webpack ...
MVC 框架。依托长时间的开源社区积累,Express 已经成为 NodeJS 生态圈中非常成熟的开发框架。基于 NodeJS 平台在处理大量并发请求的优势,Express 框架的性能表现不俗,而且因为使用的是 JavaScript 语言,所以前后...
:woman::laptop: 关于前端开发的笔记和学习 主要基于和该平台上的相关课程。 其他资源在各节中详细介绍。 内容 :memo: 降价,样式和修饰 | | :mage: JavaScript&co。 | | | ES模块 打字稿 AJAX | 提取和Axios :...
不喜欢写那种"学习笔记"式的文章. 同时本系列将很快全部写完(有工作压力就是有动力), 随后如果时间允许我会继续更新MVC系列文章.再一次对等待MVC文章的朋友们说声抱歉! 另外本系列文章的大部分知识点来源于图灵...
基于springboot+SpringMVC+bootstrap的云笔记系统毕设源码.zip毕设介绍:前端使用html以及一些框架 bootstrap等后端使用Spring Spring MVC Mybatis主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java...
该项目采用Spring Boot作为后端开发框架,整合了Spring MVC、MyBatis等组件,实现了前后端分离的开发模式,使代码结构清晰,维护便捷。数据库采用MySQL,确保数据的稳定性和安全性。前端则使用HTML、CSS和JavaScript...
### 感兴趣的链接: Dropbox 个人文件夹,包含 C#、Jquery、ASP.Net、LINQ 等内容 (我建议下载 PRO ASP.Net MVC 5,在行动中学习 JQuery 和 LINQ) ASP.NET 官方网站 (我建议阅读 ASP.NET MVC 和 Entity Framework...
VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...
微软虚拟学院-AngularJS 这些是我在AngularJS的课程上记下的个人笔记。... 用于创建动态Web应用程序的前端JavaScript框架。 开源,由Google维护。 初始版本2009。 稳定版本1.4.3 / 2015年7月15日。 MVC模式
机器学习(ML):预测客户行为对话式用户界面(CUI / Bot):信任和透明性可促进销售第三方集成:为OPEX交易CAPEX SOLID原理和代码组成设计模式(MVC,MVVM,存储库,工厂) API和服务器框架用户