Оптимизация удаления нескольких строк в таблице данных YUI - PullRequest
2 голосов
/ 05 декабря 2008

Операции удаления, по-видимому, самые медленные в датируемых данных YUI. У меня есть дата> 300 строк. Мне нужно удалить выбранные строки. Я попытался удалить выбранные записи из recordset и затем вызвать table.render() .. Хотя это нормально, можно ли сделать это лучше?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2008

Посмотрите на документы API по методу "deleteRow" для виджета с датами (на http://developer.yahoo.com/yui/docs/YAHOO.widget.DataTable.html#method_deleteRow).. Мне кажется, это то, что вам нужно. Возможно, что-то вроде:

var selected = theDataTable.getSelectedRows();
var rset = theDataTable.getRecordSet();

for (var x = 0; x < selected.length; x++) {
    theDataTable.deleteRow(rset.getRecordIndex(rset.getRecord(selected[x]))
}
1 голос
/ 07 декабря 2008

Нет. Это медленнее, чем я написал. Здесь вы удаляете строку за строкой, и каждый раз, когда данные должны быть перерисованы.

Что я сделал, так это удалил эти записи из набора записей и затем обработал данные один раз. Это быстрее, но не намного.

0 голосов
/ 08 декабря 2008

Насколько мне известно, это самый быстрый способ удалить строку из таблицы данных yui. Однако, ради вашего пользователя, если не требуется 300 строк, вы должны рассмотреть нумерацию страниц, которая улучшена в версии 2.6.0 (и была разделена и теперь может использоваться для других объектов, а не только для DataTable).

...