Я думал о переписывании нашего устаревшего приложения, которое использует чистый jQuery. Он отображает данные журнала, которые он получает через websocket, он показывает только последние 100 записей, удаляя старые и добавляя новые.частые обновления данных для ractive.js
Поскольку скорость рендеринга имеет значение, я сначала попытался отобразить случайные входящие данные, а Ractive - медленнее, чем наш код jQuery. По результатам тестов jQuery отображает 1000 записей за 15 секунд и версию Ractive за 30 секунд. (наш внутренний код подталкивает каждое событие с задержкой 0,01 с)
Таким образом, я задаюсь вопросом, есть ли настройки настройки? Код я использую просто:
var LogApp = Ractive.extend({
template: '#items',
init: function() {
var self = this;
socket.bind("logs", function(data_raw) {
var data = JSON.parse(data_raw);
if (self.data.items.length > 100) {
self.pop('items');
}
self.unshift('items', data);
});
}
});
var ractive = new LogApp({
el: react,
data: {
items: []
}
});
<script id='items' type='text/ractive'>
{{#each items:i}} {{>item}} {{/each}}
</script>
<script id='item' type='text/ractive'>
<tr>
<td>{{id}}</td>
<td>{{log_level}}</td>
<td>{{log_message}}</td>
</tr>
</script>
Я немного испортил и получил его до 18 секунд, но все же медленнее, чем частота обновления обновления (10 секунд). Попытайтесь использовать это, чтобы ускорить некоторые улучшения производительности. – martypdx
Можете ли вы представить какой-либо пример кода, как вы могли бы ускорить его до 18 секунд, что почти в два раза быстрее, чем мой код? – nateless
Извините за долгую задержку @nateless. Ответ отправлен ниже. – martypdx