表现和数据分离的好处

http://www.cnblogs.com/yexiaochai/p/3167465.html

1、界面与数据的分离,必须体现在代码上,界面的代码归界面的代码,数据的代码归数据的代码,两者必须泾渭分明。

2、当界面需求发生改变,只需要改写界面的代码,并且所改写的代码不能影响到数据访问的代码。

只有做到这两者才算界面与数据分离。叶小钗同学让我上代码,趁今天还不是很忙,写下了下面的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script>
        $(function () {
            var Countries = function () { }

            Countries.prototype = {
                _items: [],
                _getData: function (success) {
                    var items = [
                       { id: 0, name: ‘中国‘ },
                       { id: 1, name: ‘日本‘ },
                       { id: 2, name: ‘美国‘ }
                    ];
                    $.extend(this._items, items);
                    success(items);
                },
                //Events
                on_selected: $.Callbacks(),
                on_inserted: $.Callbacks(),
                //Methods
                select: function () {
                    var self = this;
                    this._getData(function (items) {
                        self.on_selected.fire({
                            sender: self,
                            items: items
                        });
                    });
                },
                insert: function (item) {
                    var self = this;
                    this._items.push(item);
                    self.on_inserted.fire({ sender: self, item: item });
                }
            }

            //=======================================================================
            // 以下为界面代码,当要调整界面,改这里就行啦~~~
            var countries = new Countries();
            countries.on_selected.add(function (args) {
                $(args.items).each(function () {
                    $(‘#countries‘).append($(‘<option>‘).attr(‘value‘, this.id).text(this.name));
                });
            });

            countries.on_inserted.add(function (args) {
                $(‘#countries‘).append($(‘<option selected="selected">‘).attr(‘value‘, args.item.id).text(args.item.name));
            });

            var id = 10;
            $(‘#btnAdd‘).click(function () {
                countries.insert({ id: ++id, name: $(‘#countryName‘).val() });
            });

            countries.select();
            //=======================================================================
        });

    </script>
</head>
<body>
    <select id="countries"></select>
    <div>
        <input id="countryName" /><button id="btnAdd">添加</button>
    </div>
</body>
</html>

代码是可以直接Copy运行的,界面如下图:

上面的代码,真正做到了界面与数据的分离:

1、在数据访问的代码,没有一行涉及到UI的,如果有一行,哪怕一行涉及到,都不能算是界面与数据分离。(简单点说,就是数据访问的代码,不能对UI有依赖)

2、当界面需求发生变化,只要修改界面的代码就可以了。

3、数据访问的代码会不会发生变化?一般来说,这个是很少会发生变化的(相比界面)。假如发生变化了,需要修改数据访问的代码,所作的修改并不会影响到界面的代码。

时间: 2024-07-29 09:23:24

表现和数据分离的好处的相关文章

对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说经理不在,让我等经理反馈. 我当时相信了,但是回来想想感觉可能失败了,但是我不知道哪里出了问题.

使用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="des

表现与数据分离

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

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

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

表现和内容分离的优势

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

模版+数据分离渲染方式的设计与实现

一 背景 1 现状 模版存放于后端 php输出页面html结构进行页面渲染 ajax请求,需要重渲结构时,php输出html结构 builder制作静态页面结构 jser完成页面交互逻辑开发 2 不足 模版数据无法存储本地,导致每次打开页面请求数据量巨大 数据每次要从接入层web服务器读取,没有合理利用CDN加速静态模版内容 联调成本较大,不利于前端控制页面展示和交互开发 3 解决方案 后端直接输出json数据 试图把渲染页面的模版存放在前端 4 技术路线 5 理论意义 利用CDN保存html模

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

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

什么是表现和内容分离

什么是表现和内容分离: 表现和内容分离是网页布局一直倡导的原则,也是当下非常流行的名词之一,可能很多开发人员虽然已经在很好的利用表现和内容分离原则进行网页布局,但是并没有对它有过多的注意,下面就结合代码实例简单介绍一下什么是表现和内容分离.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content