FPbase icon indicating copy to clipboard operation
FPbase copied to clipboard

Audit EGFP protein page performance

Open tlambert03 opened this issue 4 months ago • 0 comments

This commit implements several performance improvements for the protein detail page based on Lighthouse audit findings:

  1. Database Query Optimization:

    • Add prefetch_related for references, transitions, and bleach_measurements
    • Add select_related for parent_organism and lineage relations
    • Reduces N+1 queries on protein detail page
  2. Resource Hints:

    • Add preconnect/dns-prefetch for Google Analytics domains
    • Add preconnect/dns-prefetch for Algolia search API
    • Improves initial connection time for third-party resources
  3. JavaScript Optimization:

    • Extract inline scripts from protein_detail.html to protein_page.js
    • Convert lineage chart to use IntersectionObserver for lazy loading
    • Lineage chart now only loads when scrolled into view (200px threshold)
    • Reduces initial JavaScript parse/execution time
  4. Code Quality:

    • Replace inline mutation toggle function with reusable external function
    • Improve error handling for lineage chart loading failures
    • Better separation of concerns between template and JavaScript

Expected Impact:

  • Reduced database queries (fewer round trips)
  • Faster third-party resource loading (earlier DNS resolution)
  • Reduced initial JavaScript execution (deferred lineage chart)
  • Smaller HTML payload (extracted inline scripts)

tlambert03 avatar Nov 05 '25 20:11 tlambert03