項目模塊開發——切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還是可以接受的。
最終代碼
總結
終于算是完成了,一開始設計的時候挺簡單,越到后來條件越來越多,代碼也越來越大起來。
原文鏈接:http://www.cnblogs.com/baochuan/archive/2012/08/07/2626549.html#jibensilu
【編輯推薦】