IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)
介绍
本人菜鸟,一些自己的浅薄见解,望各位大神指正。
本框架有以下优点
1、简单(调用简单、实现简单、不过度设计)
2、视图、控制器、模型分离(分离对于维护十分有必要)
3、组件化(每一个mvc模块儿的实现都是一个组件的实现,M+V+C = 组件)
视图的分离
在博客园拜读了许多大神的js文章学到了不少东西,于是有了自己写一个JS MVC 框架的想法,动手写了一些东西拿出来和大家分享一下。
众所周知MVC M模型 C 控制器 V 视图
以前曾做过把视图和逻辑分离 算是两层架构吧
当时的想法是 用html 文件单独存放html代码,在需要的时候动态载入,这样的好处是可以利用cdn加速,因为html代码是静态的嘛。
先来看看以前的丑陋代码
htm+="<div>文章标题</div>"
htm+="<div>文章文章内容</div>"
htm+="<div>评论列表</div>";
这种代码很多很长很乱,很多时候美工需要维护这些代码,这个时候他就犯愁了,谁维护谁犯愁。
用html文件单独存放这些html的话就省去了拼接,而且维护更容易维护,并且用vs打开的话你会看到完整的格式,管理很好管理。
实现的方式以前是利用jquery 的load 方法把视图加载到一个页面的一个隐藏div中,然后就可以给控制器(C)利用了。
视图大概的样子
<textarea style='display:none' id='view1'>
<div>文章标题</div>
<div>文章内容</div>
<div>评论列表</div>
</textarea>
为什么要加textarea 呢 ?因为如果不放到textarea里的话,如果视图里面有图片之类的东西,在加载视图的时候会直接会立即请求图片,这个加载造成了延时,当时是这么想的,也不知道对不对。
还有一个原因是如果不放到textarea 的话当控制器想页面创建视图的以后,同一个视图其实在页面就有两个版本了。感觉不太好。
这样就达到了视图和逻辑的分离。他们之间唯一的关系就是控制器通过id来使用视图,和视图里面的元素。
后来我对视图的加载进行了改进,放弃了用load方法加载视图的做法,因为这样会污染页面,该成了直接加载到变量里,把变量绑定到控制器里,这样会更干净一些。
其他
若有兴趣请关注分类下的其他文章,如果能得到您的支持将不甚感激。
IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)的更多相关文章
- IceMx.Mvc 我的js MVC 框架 三、动手来写一个评论模块儿
介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...
- IceMx.Mvc 我的js MVC 框架 开篇
开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...
- IceMx.Mvc 我的js MVC 框架五、完善植物大战僵尸(雏形版增加动画)
有图有真相 说明 实在找不到僵尸的素材,从网上扒了一个山寨的僵尸,只有4张的一个连续图片,所以动作有点僵硬,植物的图片是自己处理的,非专业所以……咳咳!. 背景是自己抠下来2块儿拼接的,看在这么辛苦的 ...
- IceMx.Mvc 我的js MVC 框架 二、视图的数据绑定
介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...
- IceMx.Mvc 我的js MVC 框架四、试水植物大战僵尸(雏形版)
有图有真相 开始 最近老婆在家迷上了植物大战僵尸,每天回去躺床上就玩,有一天居然跟我说冰箱后边爬着好几只僵尸,当时我就惊呆了,后来才知道她是在说蟑螂,我去. 闲言少叙,书归正传,这是一个雏形,没有在界 ...
- IceMx.Mvc 我的js MVC 框架七、完善植物大战僵尸(增加阳光的消费和获得)
话不多说,先上图 这次增加了阳光的消费和获得,增加了阳光的点击动画 重新排布了布局 有兴趣的话就研究下吧. 上一篇有朋友说让我把项目放到github上面维护,本人没用过这个,肯请朋友们帮小弟科普一下放 ...
- IceMx.Mvc 我的js MVC 框架六、完善植物大战僵尸(向日葵登场)
有图有真相,废话不多说上图 看到园友的支持很受鼓舞,更觉得应该做下去,虽然自己是个菜鸟,但也应该共享自己的心得,只要有人获益那就是值得的. 我的下载需要csdn论坛的1个积分,之所以不完全免费出去是因 ...
- 全端开发必备!10个最好的 Node.js MVC 框架
Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API 以及大量的服 ...
- Mithril – 构建杰出 Web 应用的 JS MVC 框架
Mithril 是一个客户端的 Javascript MVC 框架.它是一个工具,使应用程序代码分为数据层,UI 层和粘合层.提供了一个模板引擎与一个虚拟的 DOM diff 实现,用于高性能渲染,支 ...
随机推荐
- 【百度地图API】如何批量转换为百度经纬度
原文:[百度地图API]如何批量转换为百度经纬度 摘要: 百度地图API的官网上提供了常用坐标转换的示例.但是,一次只能转换一个,真的非常麻烦!!这里结合了官方的示例,自制一个批量转换工具,供大家参考 ...
- oracle处理节点之间的父子关系
通常当与树的结构之间的关系处理,这是一个很复杂的事情,我们可以通过程序代码去逐层遍历父或子节点,这样做的缺点是很明显,效率不高,操作复杂性是比较大的.而当我们使用Oracle当数据库,我们可以有一个简 ...
- CSS3+HTML5特效6 - 闪烁的文字
先看效果 abcd 这个效果也比较简单,利用keyframes对文字的大小.透明度及颜色做循环显示. CSS <style> @-webkit-keyframes flash { 0%{ ...
- c# WebBrowser开发参考资料
原文:c# WebBrowser开发参考资料 c# WebBrowser开发参考资料,所有资料的采集均来自网上 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrows ...
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
原文:在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持. WAMPServer可以让开发者在Windows系统下快速搭建WAMP环境,它支持多版本的Apach ...
- Spring之使用Annotation注解开发项目
我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...
- Oracle中的二进制、八进制、十进制、十六进制相互转换函数
原文:Oracle中的二进制.八进制.十进制.十六进制相互转换函数 Oracle中的二进制.八进制.十进制.十六进制相互转换函数 今天在网上看到一篇关于在oracle中对各种进制数进行转换的帖子, ...
- Java Persistence with MyBatis 3(中国版) 第五章 与Spring集成
MyBatis-Spring它是MyBatis子模块框.它用来提供流行的依赖注入框架Spring无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程 ...
- android项目总体界面架构(可直接复用)
文章解读.效果图.源代码下载链接 http://blog.csdn.net/gao_chun/article/details/37903673
- 2014由于在myeclipse5.5.1许可证
点击假设Myeclipse负载项目server该图标不响应.这是MyEclipse过期,这也是一年许可: subscriber: axin Serial:nLR8ZC-855575-69517252 ...