“虽然知道了很多道理,但依然过不好这一生”
虽然知道了很多方法,却依然写不好JavaScript代码~~
在服务端,用MVC5、SSH,按照他的步骤,基本就够处理一般问题了。
而坑爹的,需要多做几个模块,需要多一些事件响应,需要做一些canvas动画......
总之就是要把前端做绚了!
总之就是前端JavaScript模块代码量增加了!代码维护量增加了!
没事,通过学习使用各种框架,架构解决问题.......然而并没有什么卵用(森森感觉自己的学习能力太差了)
虽然使用了框架的API减少了很多操作,但还是碰到这个问题:写一个函数,触发一系列的计算,发送了ajax,又动态更改了dom,为新的dom元素绑定事件......然后呢,然后让我想想我做到哪了。
而用的最多的就是MVC了,而前端在整个系统中,就算是其中V的部分,又把它拆分成MVC,有点吃饱了撑(反正Google没出能用的结果,有了就直接用完了睡觉,懒~)
由此对前端仔细想了一下,得出了如下流程:
1、用户输入地址后
2、浏览器加载页面后,页面说到底是静止不动的(抛开setTimeOut等自动执行方法);
3、用户的鼠标、手指等的东西对浏览器发出指令时,显示的页面(dom+css)一定要有变化;不动就算死了!
4、能够循环回到第2点;
核心就两点:1、能够接收改变页面的指令;2、能够根据指令改变页面(dom+css);
唯一的指令改变唯一的页面,这就是JavaScript要做到事情了。
实现是这样的,创建一个html文件,加入<div id="content"></div>,如下是js代码,随便放哪都行
var CC = {
View:{},
Control:{}
}
CC.Control = {
Practice:function(data){
var word = "sa";
CC.View.Show("WordPractice",{say:word});
}
}
CC.View= {
MySay:function(data){
document.getElementById("content").innerText = data.say;
}
}
CC.View.Show = function (name,data){
CC.View[name](data);
}
这么写,就可以把指令归纳入CC.Control,把对页面的更改归纳入CC.View; CC.View.Show,只负责选择指定的View,并传入data。
CC.Control中的每一个指令,都可以执行1个或多个CC.View的函数,实现了“唯一的指令改变唯一的页面”这个概念(所以用CC来表示这个概念)。
先写这么多吧,详细的东西会多一点,这个博客就是日志工具记录一下每天的心得。
若有帮助,和我说一声,帮分享一下
若有错误,请及时指出呀,不能坑别人
当然,还有 然并卵