开发文档——切dvd库

 
介绍
 
  这几天忙着赶需求。主要是因为切dvd库,这样出现了要把两个资料库的内容揉在一起显示,显示的时候主要问题发生在后加载(把两块的内容分布显示)上。除了复杂的业务需求外,还有技术细节上的实践。——这里后加载,我们权当翻页(道理一样)。
 
 

 
索引
 
 
基本思路
 
 

基本思想是

  1)初始的时候,会同时到两个数据源取值。

  2)下次取值的时候,会把两个时间点(2001和2006)发到服务端,哪个时间长就取哪段数据。然后重新初始化大时间点数据。

  3)如果服务端遇到两个时间点相同,那么就同初始化操作一样,再到两个数据源取数据。

  4)如果数据为空,那么把对应时间设置为0000。

处理架构
 
 

                                   PHP第一次加载(点击查看大图)

                                   JS初始化(点击查看大图)——其中包括JS滚动加载

                                    PHP后加载(点击查看大图)

                                     JS滚动加载

已在JS初始化图片上。

 
JS脚本问题
 
innerHTML在IE下无法赋值
 
原来习惯于用这种方式累加值——出现“未知的运行时错误”。
$('tableId').innerHTML += $("tableId").innerHTML + value;

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

数字属性默认会被排序
 
 
    var opus = {
        '2010':'result:2010',
        '2008':'result:2008',
        '2009':'result:2009'
    }

    for(var property in opus){
       console.log(property);
    }

                                    运行时结果

                                    最后解决办法

 
delete 与 splice
 
delete 之后,虽然元素被删除了,但是那个删除的位置还存在,只是变成了undefined。
所以使用splice删除元素。
 
有人提出delete比splice 效率高,我的业务来说没有那么大的数据量splice还是可以接受的。
                                     最终代码

 
总结
 

  终于算是完成了,一开始设计的时候挺简单,越到后来条件越来越多,代码也越来越大起来。

推荐
 
原文地址:https://www.cnblogs.com/baochuan/p/2626549.html