发表于: 2017-05-18 19:45:09
1 993
今天完成的事情:
听了老大讲的mvc方式设计自己的代码结构,感觉有不少收获,自己之前写的代码拓展性,复用性太差。
小课堂同步异步的作用与区别的理解。
任务9上线下线功能的编写,不过还未成功。
明天的计划:
小课堂的编写。
遇到的问题:
1对同步异步的理解:
js代码的执行逻辑是从前到后,依次执行,这就是同步执行。但是,由于cpu的运行速度很快,但是网络链接速度,io设备等执行速度较慢,cpu需要等待这些数据返回成功才能执行下一步的动作。
同步的代码在很多情况下, CPU其实是在等待中度过的。
异步的代码可以大大的提升系统的容量上限, 因为充分利用了空闲的CPU时间, 比如等待一个网络连接, 等待MySQL服务器的数据返回异步的代码, 就是把这些等待的时间给充分利用起来了, 把网络连接, 访问数据库这种耗时的工作时都在注册一个callback或者event之后切换出来, 让CPU先去干别的活(例如响应别的请求), 当网络连接,数据库返回结果时再回来执行刚才的callback中的代码异步的代码对于单个的请求的性能提升帮助比较有限 (除非你的单个请求大量依赖这种IO操作)
2 mvc的理解:
模型
模型用来存放应用的所有数据对象。比如,可能有一个User模型,用以存放用户列表、他们的属性及所有与模型有关的逻辑。
模型不必知道视图和控制器的逻辑。任何事件处理代码、视图模板,以及那些和模型无关的逻辑都应当隔离在模型之外。
将模型的代码和视图的代码混在一起,是违反MVC架构原则的。模型是最应该从你的应用中解耦出来的部分。
当控制器从服务器抓取数据或创建新的记录时,它就将数据包装成模型实例。也就是说,我们的数据是面向对象的,任何定义在这个数据模型上的函数或逻辑都可以直接被调用。
视图
视图层是呈现给用户的,用户与之产生交互。在JavaScript应用中,视图大都是由HTML、CSS、JavaScript模板组成的。除了模板中简单的条件语句之外,视图不应当包含任何其他逻辑。
将逻辑混入视图之中是编程的大忌,这并不是说MVC不允许包含视觉呈现相关的逻辑,只要这部分逻辑没有定义在视图之内即可。我们将视觉呈现逻辑归类为“视图助手”(helper):和视图相关的独立的小工具函数。
控制器
控制器是模型和视图之间的纽带。控制器从视图获取事件和输入,对它们(很可能包含模型)进行处理,并相应地更新视图。当页面加载时,控制器会给视图添加事件监听,比如监听表单提交或按钮点击。然后,当用户和你的应用产生交互时,控制器中的事件触发器就开始工作了。
收获:
以上
评论