FPbase
FPbase copied to clipboard
Audit EGFP protein page performance
This commit implements several performance improvements for the protein detail page based on Lighthouse audit findings:
-
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
-
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
-
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
-
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)