项目模块开发——切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下无法赋值

原来习惯于用这种方式累加值——出现“未知的运行时错误”。

 
 
 
 
  1. $('tableId').innerHTML += $("tableId").innerHTML + value; 

 [[90008]]处理方案,也是最终代码——tr和tbody在ie下只有可读属性,不能赋值。

数字属性默认会被排序

 
 
 
 
  1. var opus = {   
  2.     '2010':'result:2010',   
  3.     '2008':'result:2008',   
  4.     '2009':'result:2009' 
  5. }   
  6. for(var property in opus){   
  7.    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

【编辑推荐】

  1. 雅虎的JavaScript库 YUI 3.6正式版发布
  2. 优秀设计师应当知道的20大UI设计原则
  3. 架构师的成长历程:合格的架构师是如何炼成的
  4. Yii 1.1.11发布,高性能PHP开发框架
  5. Web开发框架之权限管理系统
THE END