項目模塊開發(fā)——切dvd庫
介紹
這幾天忙著趕需求。主要是因為切dvd庫,這樣出現(xiàn)了要把兩個資料庫的內(nèi)容揉在一起顯示,顯示的時候主要問題發(fā)生在后加載(把兩塊的內(nèi)容分布顯示)上。除了復(fù)雜的業(yè)務(wù)需求外,還有技術(shù)細(xì)節(jié)上的實踐。——這里后加載,我們權(quán)當(dāng)翻頁(道理一樣)。
基本思路
基本思想是:
1)初始的時候,會同時到兩個數(shù)據(jù)源取值。
2)下次取值的時候,會把兩個時間點(2001和2006)發(fā)到服務(wù)端,哪個時間長就取哪段數(shù)據(jù)。然后重新初始化大時間點數(shù)據(jù)。
3)如果服務(wù)端遇到兩個時間點相同,那么就同初始化操作一樣,再到兩個數(shù)據(jù)源取數(shù)據(jù)。
4)如果數(shù)據(jù)為空,那么把對應(yīng)時間設(shè)置為0000。
處理架構(gòu)
PHP第一次加載(點擊查看大圖)
JS初始化(點擊查看大圖)——其中包括JS滾動加載
PHP后加載(點擊查看大圖)
JS滾動加載
已在JS初始化圖片上。
JS腳本問題
innerHTML在IE下無法賦值
原來習(xí)慣于用這種方式累加值——出現(xiàn)“未知的運行時錯誤”。
- $('tableId').innerHTML += $("tableId").innerHTML + value;
處理方案,也是最終代碼——tr和tbody在ie下只有可讀屬性,不能賦值。
數(shù)字屬性默認(rèn)會被排序
- var opus = {
- '2010':'result:2010',
- '2008':'result:2008',
- '2009':'result:2009'
- }
- for(var property in opus){
- console.log(property);
- }
運行時結(jié)果
最后解決辦法
delete 與 splice
delete 之后,雖然元素被刪除了,但是那個刪除的位置還存在,只是變成了undefined。
所以使用splice刪除元素。
有人提出delete比splice 效率高,我的業(yè)務(wù)來說沒有那么大的數(shù)據(jù)量splice還是可以接受的。
最終代碼
總結(jié)
終于算是完成了,一開始設(shè)計的時候挺簡單,越到后來條件越來越多,代碼也越來越大起來。
原文鏈接:http://www.cnblogs.com/baochuan/archive/2012/08/07/2626549.html#jibensilu
【編輯推薦】