Операции удаления, по-видимому, самые медленные в датируемых данных YUI. У меня есть дата> 300 строк. Мне нужно удалить выбранные строки. Я попытался удалить выбранные записи из recordset и затем вызвать table.render() .. Хотя это нормально, можно ли сделать это лучше?
recordset
table.render()
Посмотрите на документы 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])) }
Нет. Это медленнее, чем я написал. Здесь вы удаляете строку за строкой, и каждый раз, когда данные должны быть перерисованы.
Что я сделал, так это удалил эти записи из набора записей и затем обработал данные один раз. Это быстрее, но не намного.
Насколько мне известно, это самый быстрый способ удалить строку из таблицы данных yui. Однако, ради вашего пользователя, если не требуется 300 строк, вы должны рассмотреть нумерацию страниц, которая улучшена в версии 2.6.0 (и была разделена и теперь может использоваться для других объектов, а не только для DataTable).