1 line
1.5 KiB
JavaScript
1 line
1.5 KiB
JavaScript
(function(){'use strict';const e=()=>navigator.hardwareConcurrency<=2||navigator.deviceMemory<=2||/Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent);e()&&(document.documentElement.style.setProperty('--animation-speed','0.5'),document.documentElement.classList.add('low-performance'));const t={rootMargin:'50px',threshold:0.1},n=document.querySelectorAll('[data-lazy]');if(n.length&&'IntersectionObserver'in window){const o=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add('loaded'),o.unobserve(e.target))})},t);n.forEach(e=>o.observe(e))}let r;window.addEventListener('resize',()=>{clearTimeout(r),r=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedResize'))},150)});let i;const s=e=>{i&&cancelAnimationFrame(i),i=requestAnimationFrame(e)};if('localhost'===window.location.hostname||'127.0.0.1'===window.location.hostname){let a=0;const c=()=>{performance.now()>16&&a<5&&(console.warn('🐌 Performance: Frame took longer than 16ms'),a++)};setInterval(c,1000)}window.CSS&&CSS.supports&&CSS.supports('backdrop-filter','blur(1px)')||document.documentElement.classList.add('no-backdrop-filter');const l={passive:!0};let d;window.addEventListener('scroll',()=>{clearTimeout(d),d=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedScroll'))},10)},l),console.log('✨ Performance-Optimierungen geladen:',{lowPerformance:e(),backropFilter:CSS.supports('backdrop-filter','blur(1px)'),memory:navigator.deviceMemory||'unknown',cores:navigator.hardwareConcurrency||'unknown'})})();
|