【关于Web App】2

  1. 模版前端化:上面说了数据异步化,既然数据都放到了前端的处理,模版自然也就放到了前端。从后端的模版慢慢发展到前端,逐渐也有了好多好多人的工作。有Less-Logic的,比如大名鼎鼎的mustache的js版本,或者mustache的改进版Handlebars等。为了针对js这种语言,后面又有了针对js的模版,Full-Logic的,大量的,每个公司自成一套的js模版,比如jQuery.tmpl, tmpl, ejs, micro template ... 以及各种以公司或者js基础框架命名的js模版,这里就不提了。模版的优劣不在本文的讨论范围,这里要提的是在使用模版的时候尽量也要考虑到局部刷新的机制,再复杂的app都一个render,一个大模板,任何一小块数据更新都整块全部干掉重新填进去,显然是不合适的。所以建议在模版划分的的时候也考虑到子模板的划分。(除非你的模版系统本身就支持局部刷新【chunk机制】)
  2. 事件代理:接上面,因为前端模版的出现,页面上dom大多不是html页面一开始被浏览器解析完就有的,而是后来通过获取异步数据->拼接模版->innerHTML填到html对应容器里面的。正因为这种情况的出现。事件的绑定就要特别的小心了。好多开发不是很熟练的同学经常会犯的低级错误,说怎么我模版里面有这个dom,而且我通过inspector调试工具也确实找得到这个dom,但是怎么事件绑上去没效果。这里就要小心检查下是否你绑事件的时机是在render,也就是你拼接好的的dom str 填进页面dom树之前了。当页面中都没有这个dom,怎么可能绑事件有效果。用jq的同学又因为jq的容错机制,导致dom其实没有都没有发现报错而一头雾水。
    即使你确定在render之后再绑的事件,但是也不一定是好的策略,因为模版机制会让你的容器里的html不断的刷新。一旦dom刷新了,不但你之前绑的事件没了,还容易引发内存泄漏各种问题。
    所以这里delegate明显是更舒服的方案。通过外围的容器来代理容器里面的dom事件。方便且可以规避很多不必要的问题。

上面说了这几个点,是我个人认为,开发web app需要着重注意的几个点。把这几个点都一一做好了,开发OPOA的web app自然也会变得容易起来。


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值