项目模块开发——切dvd库
介绍
这几天忙着赶需求。主要是因为切dvd库,这样出现了要把两个资料库的内容揉在一起显示,显示的时候主要问题发生在后加载(把两块的内容分布显示)上。除了复杂的业务需求外,还有技术细节上的实践。——这里后加载,我们权当翻页(道理一样)。
[[90006]]
基本思路
基本思想是:
1)初始的时候,会同时到两个数据源取值。
2)下次取值的时候,会把两个时间点(2001和2006)发到服务端,哪个时间长就取哪段数据。然后重新初始化大时间点数据。
3)如果服务端遇到两个时间点相同,那么就同初始化操作一样,再到两个数据源取数据。
4)如果数据为空,那么把对应时间设置为0000。
[[90007]]
处理架构
[[90008]] PHP第一次加载(点击查看大图)
[[90008]] JS初始化(点击查看大图)——其中包括JS滚动加载
[[90008]] PHP后加载(点击查看大图)
[[90008]] JS滚动加载
已在JS初始化图片上。
[[90011]]
JS脚本问题
innerHTML在IE下无法赋值
原来习惯于用这种方式累加值——出现“未知的运行时错误”。
- $('tableId').innerHTML += $("tableId").innerHTML + value;
[[90008]]处理方案,也是最终代码——tr和tbody在ie下只有可读属性,不能赋值。
数字属性默认会被排序
- var opus = {
- '2010':'result:2010',
- '2008':'result:2008',
- '2009':'result:2009'
- }
- for(var property in opus){
- console.log(property);
- }
[[90008]]运行时结果
[[90008]]最后解决办法
delete 与 splice
delete 之后,虽然元素被删除了,但是那个删除的位置还存在,只是变成了undefined。
所以使用splice删除元素。
有人提出delete比splice 效率高,我的业务来说没有那么大的数据量splice还是可以接受的。
[[90008]]最终代码
总结
终于算是完成了,一开始设计的时候挺简单,越到后来条件越来越多,代码也越来越大起来。
原文链接:http://www.cnblogs.com/baochuan/archive/2012/08/07/2626549.html#jibensilu
【编辑推荐】
- 雅虎的JavaScript库 YUI 3.6正式版发布
- 优秀设计师应当知道的20大UI设计原则
- 架构师的成长历程:合格的架构师是如何炼成的
- Yii 1.1.11发布,高性能PHP开发框架
- Web开发框架之权限管理系统
