前端Web开发MVC模式-入门示例

MVC概论起初来之桌面应用开发。其实java的structs框架最能体现MVC框架:model模型是理解成服务器端的模块程序;view为发送给客服端的内容;control为servlet程序控制跳转和工作流。

随着前端Ajax兴起、前端开发工作进一步划分:js程序员和ue页面制作、另外从整个前端项目的清晰明朗可以扩展性角度来看,MVC的应用也越来越必要,特别是对大的项目?

例如 需要给一个页面上的button注册一个onclick事件。

1、我们可以有如下最简洁的写法:(view和model control完全混合)

<html>

<head>

<title> example </title>

</head>

<body>

<input type="button" value="baidu" onclick="alert(this.value);"/>

</body>

</html>

说明:如上写法的好处:简单、直接;

严重的弊端:如果都是这样写法,页面代码很大的时候,修改js代码还需要查找整个页面,导致整个页面非常混乱。

批注:类似与 jsp中直接嵌入java片段语句。

2、将html和js代码进行适当分离:(view和model control在同一页面适当分离)

修改以上的写法:

<html>

<head>

<title> example </title>

</head>

<body>

<input type="button" value="baidu" onclick="tipInfo(this);"/>

<script type="text/javascript">

function tipInfo(o){

alert(o.value);

}

</script>

</body>

</html>

这是将页面上所有的js代码操作放到<script></script>标签中进行。使得js逻辑代码相对集中,易于后期修改。

但是我们还是需要在html标签中写tipInfo(this)的js调用代码。即html和js仍然有混合。

3、将html和js代码彻底分离:(view和model control完全分离)

修改写法:

视图view的html代码:

<html>

<head>

<title> example </title>

</head>

<body>

<input type="button" value="baidu" id="baidu"/>

</body>

<script src="example.js"></script>

</html>

分离出来的模型model和控制control的综合example.js代码:

var o = document.getElementById("baidu");

o.onclick = function(){

alert(this.value);

}

说明:button节点的操作和事件注册等工作完全与html页面分离。但是仔细想想,这还不是一个基于MVC的模式,control和model完全混合在一起。

批注:与jsp中的javabean实现类似。

4、符合MVC框架的实现:(view、mode和control完全分离)

view视图的view.html代码:

<html>

<head>

<title> example </title>

</head>

<body>

<input type="button" value="baidu" id="baidu"/>

</body>

<script src="model.js"></script>

<script src="control.js"></script>

</html>

实现control控制功能的control.js代码:

function G(id){

return document.getElementById(id);

}

var UI = new Object();

UI.register = function(id,even,fun,arr){

if(G(id))

G(id)["on"+even] = function(){

fun(arr);

};

}

UI.register("baidu","click",tipInfo,[1,2]);

第一参数:为button节点id

第二参数:为需要注册的触发事件

第三参数:事件触发函数

第四参数:需要传递的参数。

说明:control.js的代码就是实现html页面节点事件的注册。使得节点的各种事件知道会触发什么函数去执行。

具体的函数操作,可以放到model模块中执行,在model中,才是真正处理逻辑操作。看model.js代码:

function tipInfo(arr){

alert(arr[1]);

//实现其他组件功能,例如popup、form等。都属于model模型

}

批注:类似jsp中的struts框架、struts标签实现方式。

总结:

View:只管页面的显示和样式展示

Control:进行页面节点事件的注册和控制,以及页面加载性能的实现(例如方荣的硬盘缓存)。

Model:真正的逻辑处理,例如jslib库中的form、popup、drag等功能组件都属于model模块。

【转】前端Web开发MVC模式-入门示例的更多相关文章

  1. 前端Web开发MVC模式-入门示例

    MVC概论起初来之桌面应用开发.其实java的structs框架最能体现MVC框架:model模型是理解成服务器端的模块程序:view为发送给客服端的内容:control为servlet程序控制跳转和 ...

  2. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part1 )

    Model-View-Controller 简称MVC. 简单的说就是把数据处理,显示,页面事件及处理过程分离开来,企业应用多数都采用这种方式,多层架构的优缺点不再多言,google一下啥都知道. 在 ...

  3. 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码

    一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...

  4. web开发-MVC IoC 框架(转)

    随着Web应用的商业逻辑包含逐渐复杂的公式分析计算.决策支持等,使客户机越 来越不堪重负,因此将系统的商业分离出来.单独形成一部分,这样三层结构产生了. 其中‘层’是逻辑上的划分. 三层体系结构是将整 ...

  5. Java Web开发技术教程入门-自定义标签

    回顾: 昨天了解了JSP开发的两种模式Model1和Model2模式.Model1采用JSP+JavaBean技术开发Web应用,它比较适合小规模应用的开发,效率较高,易于实现.但由于在Model1中 ...

  6. Java Web开发技术教程入门-Model1和Model2

    今天我们聊聊JSP开发中的Model1和Model2. Model1采用了JSP+JavaBean技术开发Web应用.其中,JSP实现页面显示,业务逻辑和流程控制,数据处理由JavaBean完成.在J ...

  7. MVC模式入门案例

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widg ...

  8. Java Web开发技术教程入门-JSP基本语法和九大内置对象

    这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...

  9. Java Web开发技术教程入门-静态网页技术

        昨天了解了构建动态网站的几种技术:Servlet技术.JSP技术,ASP技术和ASP.NET技术以及PHP技术.昨天的精髓在于JSP技术的运行原理:通过用户请求JSP文件,首先检查JSP文件的 ...

随机推荐

  1. RESTful Web Service 架构

    特点:简单,可靠,高效,跨平台和跨语言 含义: Web Service 简单来说是指提供给不同设备通过互联网(一般使用 HTTP 协议)进行通信和交换数据的一种服务.RESTful Web Servi ...

  2. 启发式搜索A-Star算法 【寻找 最短路径 算法】【地理几何位置 可利用的情况】

    在处理最短路径问题时,有一种启发式算法是我们应该了解的,由于其有着优秀的探索效率在各自现实项目中多有应用,它就是 A-star 算法,或  A*  算法. 个人观点: A*  算法并不保证找到的路径一 ...

  3. Linux串口设备树硬件、软件流控设置

    /********************************************************************** * Linux串口设备树硬件.软件流控设置 * 说明: ...

  4. mac上不了网

    不知怎么回事勾选了socks代理导致ping的通但打不开网页软件登不了

  5. 第三次随笔--安装虚拟机及学习linux系统初体验

    第三次随笔--安装虚拟机及学习linux系统初体验 ·学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 首先按照老师的提示步骤进行VirtualBox虚拟 ...

  6. FZU软工第三次作业-原型设计

    目录 00.前言: 01.PSP表格: 02.需求分析--NABCD模型 N-- Need 需求 A-- Approach 做法 B-- Bnefit 好处 C-- Competitors 竞争 D- ...

  7. pycharm汉化 (ubuntu版)

    终端依次输入 cd  /tmp git clone https://github.com/ewen0930/PyCharm-Chinese cd Pycharm-Chinese bash packag ...

  8. Centos7快速安装haproxy

    HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...

  9. shell基础入门(一)

    //获取输入内容 #!/bin/bash echo "What is your name?" read PERSON read -p "who are you name: ...

  10. centos7配置lamp成功安装过

    linux+apache+mysql/mariadb+php 首先apache的安装: yum install httpd 接着mysql/mariadb的安装: yum install mysql ...