Performance Test Demo

Stress test with large lists, real-time filtering, sorting, and batch operations

Performance Stats

Real-time metrics for stress testing LiveView performance

0
Total Items
0
Selected
None
Filter
name
Sort By

Interactive Demo

Add thousands of items and test real-time updates

No items yet. Click "Add 10/100/1000 Items" to start!

Implementation

Full source code for performance testing

views.py Python
from djust import LiveView

class PerformanceTestView(LiveView):
    """
    Performance test demo with large lists
    """
    template_name = "demos/performance.html"

    def mount(self, request, **kwargs):
        self.items = []
        self.next_id = 1
        self.filter_text = ""
        self.sort_by = "name"

    def add_items_100(self):
        """Add 100 items for testing"""
        new_items = self._generate_items(100)
        self._items.extend(new_items)

    def filter_items(self, value=""):
        """Real-time filtering"""
        self.filter_text = value

    def sort_items(self, value="name"):
        """Change sort order"""
        self.sort_by = value

    def toggle_item(self, **kwargs):
        """Toggle item selection"""
        item_id = int(kwargs.get('id'))
        for item in self._items:
            if item['id'] == item_id:
                item['selected'] = not item['selected']
                break

    @property
    def items(self):
        """Return filtered and sorted items"""
        return self._apply_filter_and_sort()
performance.html HTML
<!-- Add Items -->
<button @click="add_items_100">
  Add 100 Items
</button>

<!-- Filter -->
<input type="text"
       placeholder="Filter..."
       @change="filter_items" />

<!-- Items List -->
{% for item in items %}
  <div class="performance-item">
    <input type="checkbox"
           {% if item.selected %}checked{% endif %}
           @change="toggle_item"
           data-id="{{ item.id }}" />
    <span>{{ item.name }}</span>
  </div>
{% endfor %}

How It Works

Efficient VDOM

Rust-powered virtual DOM diffing generates minimal patches even with 1000+ items

🔍

Real-time Filtering

Server-side filtering and sorting with instant client updates via WebSocket

🔄

Batch Operations

Select, delete, and update multiple items in a single operation