您的位置:首页 > Web前端 > JavaScript

IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)

2013-08-31 16:10 309 查看
介绍
本人菜鸟,一些自己的浅薄见解,望各位大神指正。

本框架有以下优点

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方法加载视图的做法,因为这样会污染页面,该成了直接加载到变量里,把变量绑定到控制器里,这样会更干净一些。

其他
若有兴趣请关注分类下的其他文章,如果能得到您的支持将不甚感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: