diff options
author | alecpl <alec@alec.pl> | 2009-04-21 09:04:49 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2009-04-21 09:04:49 +0000 |
commit | c4b819e9b9792c8819ef60136aa4945884f4f84d (patch) | |
tree | c411607eafab25fec2efe8c838db58182bc739a1 /program/js/list.js | |
parent | cf356bcb360509734e6c44e1f08f1092043d19d9 (diff) |
- Speed up message list displaying on IE (initialize list in background)
- use DOM methods instead of jQuery for messages list object
Diffstat (limited to 'program/js/list.js')
-rw-r--r-- | program/js/list.js | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/program/js/list.js b/program/js/list.js index dabcecb92..5f017df03 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -98,7 +98,7 @@ init: function() /** - * + * Init list row and set mouse events on it */ init_row: function(row) { @@ -123,7 +123,7 @@ init_row: function(row) /** - * + * Remove all list rows */ clear: function(sel) { @@ -154,20 +154,21 @@ remove_row: function(uid, sel_next) /** - * + * Add row to the list and initialize it */ insert_row: function(row, attop) { - var tbody = this.list.tBodies[0]; - if (!row.jquery) - row = $(row); + if (this.background) + var tbody = this.background; + else + var tbody = this.list.tBodies[0]; if (attop && tbody.rows.length) - row.prependTo(tbody) + tbody.insertBefore(row, tbody.firstChild); else - row.appendTo(tbody); + tbody.appendChild(row); - this.init_row(row[0]); + this.init_row(row); this.rowcount++; }, @@ -828,6 +829,20 @@ drag_mouse_up: function(e) } return rcube_event.cancel(e); +}, + + +/** + * Creating the list in background + */ +set_background_mode: function(flag) +{ + if (flag) { + this.background = document.createElement('TBODY'); + } else if (this.background) { + this.list.replaceChild(this.background, this.list.tBodies[0]); + this.background = null; + } } }; |