From d058d498c86cd91e8cf4a8962f5fc1d3f2fb04a9 Mon Sep 17 00:00:00 2001 From: alec Date: Tue, 21 Apr 2009 09:04:49 +0000 Subject: - Speed up message list displaying on IE (initialize list in background) - use DOM methods instead of jQuery for messages list object git-svn-id: https://svn.roundcube.net/trunk@2408 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/js/list.js | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'roundcubemail/program/js/list.js') diff --git a/roundcubemail/program/js/list.js b/roundcubemail/program/js/list.js index dabcecb92..5f017df03 100644 --- a/roundcubemail/program/js/list.js +++ b/roundcubemail/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; + } } }; -- cgit v1.2.3