使用Javascript实现表现和数据分离

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="wyf">
    <script src="jquery-2.1.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            //定义一个控制器,负责将用户操作映射到模型上。
            var dataController = {
                start : function(){
                    this.view.start();
                },
                set : function(name){
                    this.model.setName(name);
                }
            };
            //定义一个数据模型(负责数据的存储及查询)
            dataController.model = {
                nameModel : {
                    "wyf" : "Java",
                    "zz" : "CSharp",
                    "zq" : "Javascript"
                },
                name : null,
                //数据模型负责业务逻辑和数据存储
                setName : function(name){
                    this.name = this.nameModel[name] ? name : null;
                    this.onChange();
                },
                //通知数据同步更新
                onChange : function(){
                    dataController.view.update();
                },
                //相应视图对当前状态的查询
                getResult : function(){
                    return this.name ? this.nameModel[this.name] + this.name : "错误";
                }
            };
            //定义视图(视图专门管理页面上发生的事件等)
            dataController.view = {
                //用户触发change事件
                start : function(){
                    //原生添加事件
                    //var selectNode = document.getElementById("selectName");
                    //selectNode.addEventListener("change", this.onChange, false);
                    //jquery添加事件
                    $("#selectName").change(this.onChange);
                },
                onChange : function(){
                    //原生Javascript获取select选中项值
                    //var selectNode = document.getElementById("selectName");
                    //var index = selectNode.selectedIndex;// selectedIndex代表的是你所选中项的index
                    //dataController.set(selectNode.options[index].value);
                    //Jquery获取select选中项的值
                    dataController.set($("#selectName").val());
                },
                update : function(){
                    $(‘#divResult‘).html(dataController.model.getResult());
                }
            };
            dataController.start();
        });
    </script>
</head>
<body>
    <select id="selectName">
        <option value="wyf">wyf</option>
        <option value="zz">zz</option>
        <option value="zq">zq</option>
    </select>
    <div id="divResult"></div>
</body>
</html>
时间: 2024-08-28 21:38:06

使用Javascript实现表现和数据分离的相关文章

对W3C标准,对表现与数据分离、Web语义化等有深刻理解

看了好多微博总结了一下概念,首先先介绍一下W3C 啥是W3C不是wc,这个建立于 1994 年的组织,其宗旨是通过促进通用协议的发展并确保其通用型,以激发 web 世界的全部潜能, 指万维网联盟(World Wide Web Consortium)一个很牛x的组织. 代码标准 w3c官网也可以借鉴w3school对W3C的理解 W3C的标准不是某一个标准,而是一系列标准的集合. 因为网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior). 所

【web前端面试题整理07】我不理解表现与数据分离。。。(转)

拜师传说 今天老夫拜师了,老夫有幸认识一个JS高手,在此推荐其博客,悄悄告诉你,我拜他为师了,他承诺我只收我一个男弟子..... 师尊刚注册的账号,现在博客数量还不多,但是后面点会有干货哦,值得期待. http://www.cnblogs.com/aaronjs/ 前言 上周回到了成都,这周就准备找工作了,对成都的聚美优品其实比较有好感的,所以昨天就先去 面试了,感觉技术面试的还不错啦,结果最后HR说经理不在,让我等经理反馈. 我当时相信了,但是回来想想感觉可能失败了,但是我不知道哪里出了问题.

表现和数据分离的好处

http://www.cnblogs.com/yexiaochai/p/3167465.html 1.界面与数据的分离,必须体现在代码上,界面的代码归界面的代码,数据的代码归数据的代码,两者必须泾渭分明. 2.当界面需求发生改变,只需要改写界面的代码,并且所改写的代码不能影响到数据访问的代码. 只有做到这两者才算界面与数据分离.叶小钗同学让我上代码,趁今天还不是很忙,写下了下面的代码: <!DOCTYPE html> <html lang="en"> <h

表现与数据分离

The separation of structure, presentation and behavior is dead http://blog.teamtreehouse.com/the-separation-of-structure-presentation-and-behavior-is-dead Separation of semantic and presentational markup, to the extent possible, is architecturally so

JSON解析 实现界面 数据分离.

JSON 作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中 JSON格式说明 对象 {} 格式 {key : value, key : value,...} 的键值对的结构 可以反序列化为OC中的NSDictionary 数组 [] 格式 ["java&

如何使用JavaScript和正则表达式进行数据验证

利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证是网络应用软件从客户端接受数据的重要步骤,毕竟,您需要在使用客户数据前确保其符合预期的格式.在网络应用程序中,您可以选择使用特定平台的工具,比如ASP.NET.JSP等等,或者您可以利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作. 正则表达式 正则表达

表现和内容分离的优势

表现和内容分离的优势:建议:尽可能的手写代码,可以有效的提高学习效率和深度.在什么是表现和内容分离一章节中已经介绍了什么是表现和内容分离,在里面已经简单的介绍了表现和内容分离的优势,下面再来介绍一下表现和内容分离的优势具体表现在哪.一.有利于搜索引擎优化:因为控制网页表现的样式代码和网站的内容剥离出来了,一般都是放在一个单独的样式表中,这样网页的内容就赤裸裸的暴漏在搜索引擎面前,这样有利于搜索引擎抓取网页的内容.二.便于网站改版:内容和表现分离后,非常便于网站的改版,只需要调整样式表代码即可,这

【转】JavaScript eval处理JSON数据 为什么要加括号

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象.利用eval函数无疑是一种简单而直接的方法.在转化的时候需要将JSON字符串的外面包装一层圆括号:var jsonObject = eval("(" + jsonFormat + ")");为什么要加括号?加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号

Robot Framework--05 案例设计之流程与数据分离

转自:http://blog.csdn.net/tulituqi/article/details/7651049 这一讲主要说一下案例设计了.还记得我们前面做的case么?先打开浏览器访问百度,输入关键字,点击搜索. 我们再加上个检查点,检查一下标题是否包含我的关键字,然后关闭浏览器.就是下面这样了. 这样就可以算是一个比较完整的案例了,包含完整的流程和检查点,那么这时候如果我要增加一个案例,搜索另外的内容怎么办呢? 在原来的case上修改肯定是不合适的,毕竟那个案例可能还是需要保留的. 最简单