单页应用开发注意事项

事件执行效率 
  大量实现给未来dom节点绑定事件,这种绑定的很多封装实现,是利用往document绑定事件,然后冒泡到未来节点来的原理。当页面切换后,这些事件并未清理,页面会给新页面再执行类似的事件绑定。当document上点击后,执行的冒泡判断会越来越多,不仅影响到冒泡到未来dom节点模式的事件响应速度(因为冒泡判断),还会影响到精确绑定到dom节点事件的响应速度(因为执行完事件后,如果没有返回false,会继续冒泡到document),导致页面的点击响应越来越慢。
  解决这类问题,可以往未来dom节点中已存在的父节点绑定事件实现冒泡,或将未来dom节点的精确绑定事件触发延迟执行。
 
第三方插件重复渲染报错 
  页面切换,将原理的uploadify flash从dom中清除,后面再次进入需要显示uploadify的页面时,因为没有刷新页面,uploadify再次渲染会报id冲突错误。
  类似问题可以在页面切换前或新页面渲染前销毁插件对象。
 
会话状态变化 
  单页应用不刷新页面,很多交互操作只是发出ajax请求。如果同一浏览器打开两个窗口,在一个窗口进行了帐号退出操作或切换了帐号,另一窗口继续进行操作,因为不会刷新页面,而且基本都是发ajax请求获取数据,这样就会出现页面显示的是切换前的帐号数据,而ajax获取到的是切换后的帐号的数据。
  可以在每次ajax请求,都缓存会话id,然后ajax请求前,比较缓存的会话id和cookie中的会话id是否一致,如果不一致,则表示已经切换帐号,可以刷新当前页面。
 
(未完待续)
posted @ 2014-02-16 18:43  蓼椮  阅读(835)  评论(0编辑  收藏  举报