// Service Worker Registration for caching if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/sw.js') .then(function(registration) { console.log('ServiceWorker registration successful'); }) .catch(function(err) { console.log('ServiceWorker registration failed'); }); }); } // Image optimization and lazy loading function optimizeImages() { const images = document.querySelectorAll('img[loading="lazy"]'); // WebP support detection const webpSupported = checkWebPSupport(); if ('IntersectionObserver' in window) { const imageObserver = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { const img = entry.target; const picture = img.closest('picture'); // Load appropriate image format if (picture && webpSupported) { const webpSource = picture.querySelector('source[type="image/webp"]'); if (webpSource) { img.src = webpSource.srcset; } } // Remove skeleton and show image img.classList.remove('skeleton'); img.classList.add('loaded'); // Preload next images preloadNextImages(img); imageObserver.unobserve(img); } }); }, { rootMargin: '50px 0px', threshold: 0.1 }); images.forEach(img => { if (!img.complete) { img.classList.add('skeleton'); } imageObserver.observe(img); }); } // Optimize critical images optimizeCriticalImages(); } // Check WebP support function checkWebPSupport() { return new Promise((resolve) => { const webP = new Image(); webP.onload = webP.onerror = function () { resolve(webP.height === 2); }; webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA'; }); } // Preload next images for better UX function preloadNextImages(currentImg) { const nextImages = currentImg.parentElement.parentElement.nextElementSibling; if (nextImages) { const nextImg = nextImages.querySelector('img[loading="lazy"]'); if (nextImg && !nextImg.src) { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'image'; link.href = nextImg.dataset.src || nextImg.src; document.head.appendChild(link); } } } // Optimize critical images function optimizeCriticalImages() { const criticalImages = document.querySelectorAll('img[fetchpriority="high"]'); criticalImages.forEach(img => { if (img.complete) { img.classList.add('loaded'); } else { img.addEventListener('load', () => { img.classList.add('loaded'); }); } }); } // Preload critical images function preloadImage(src) { const img = new Image(); img.src = src; } // Preload critical resources if ('requestIdleCallback' in window) { requestIdleCallback(() => { // Preload non-critical resources when browser is idle const link = document.createElement('link'); link.rel = 'prefetch'; link.href = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js'; document.head.appendChild(link); // Preload jQuery const jqueryLink = document.createElement('link'); jqueryLink.rel = 'prefetch'; jqueryLink.href = 'https://code.jquery.com/jquery-3.6.0.min.js'; document.head.appendChild(jqueryLink); }); } // Performance monitoring function logPerformanceMetrics() { if ('performance' in window) { const navigation = performance.getEntriesByType('navigation')[0]; if (navigation) { console.log('Page Load Time:', Math.round(navigation.loadEventEnd - navigation.loadEventStart), 'ms'); console.log('DOM Content Loaded:', Math.round(navigation.domContentLoadedEventEnd - navigation.domContentLoadedEventStart), 'ms'); } } } // Initialize optimizations when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', optimizeImages); } else { optimizeImages(); } // Log performance metrics on load window.addEventListener('load', logPerformanceMetrics); // Advanced image optimization function advancedImageOptimization() { // Monitor image loading performance const imageLoadTimes = new Map(); document.addEventListener('load', function(e) { if (e.target.tagName === 'IMG') { const img = e.target; const loadTime = performance.now() - performance.timing.navigationStart; imageLoadTimes.set(img.src, loadTime); // Log slow loading images if (loadTime > 3000) { console.warn('Slow image load:', img.src, 'Time:', Math.round(loadTime), 'ms'); } } }, true); // Preload critical images preloadCriticalImages(); // Optimize image formats based on browser support optimizeImageFormats(); } // Preload critical images function preloadCriticalImages() { const criticalImages = [ '/assets/images/logo/logo-main.png', '/assets/images/logo/logo-sub.png' ]; criticalImages.forEach(src => { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'image'; link.href = src; link.fetchPriority = 'high'; document.head.appendChild(link); }); } // Optimize image formats function optimizeImageFormats() { // Check for AVIF support const avifSupported = checkAVIFSupport(); if (avifSupported) { // Add AVIF sources for supported browsers addAVIFSources(); } } // Check AVIF support function checkAVIFSupport() { return new Promise((resolve) => { const avif = new Image(); avif.onload = avif.onerror = function () { resolve(avif.height === 1); }; avif.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdmlmCgAAAAgCAAAAE2F1ZGEAAAAA'; }); } // Add AVIF sources function addAVIFSources() { const images = document.querySelectorAll('img[src*=".jpg"], img[src*=".png"]'); images.forEach(img => { const picture = img.closest('picture'); if (picture && !picture.querySelector('source[type="image/avif"]')) { const avifSource = document.createElement('source'); avifSource.type = 'image/avif'; avifSource.srcset = img.src.replace(/\.(jpg|png)$/, '.avif'); picture.insertBefore(avifSource, picture.firstChild); } }); } // Log performance metrics on load window.addEventListener('load', function() { logPerformanceMetrics(); advancedImageOptimization(); // Log image performance summary const totalImages = document.querySelectorAll('img').length; const loadedImages = Array.from(document.querySelectorAll('img')).filter(img => img.complete).length; console.log(`Image Performance: ${loadedImages}/${totalImages} images loaded`); });

Polisorb Turkiye

Ağrı İlaç Şirketi

Hakkımızda

Polisorb Türkiye, Ağrı'da ilaç sektöründe hizmet veren güvenilir bir işletmedir. Geniş ürün yelpazesi ile ağrı kesici, ateş düşürücü, antibiyotik gibi ilaçlar sunmaktadır. Sağlıklı ve kaliteli ilaçlarla müşteri memnuniyetini hedefleyen Polisorb Türkiye, uzman ekibi ve deneyimiyle ilaç ihtiyaçlarınızı karşılamaktadır. Ağrı ilaç firması, Ağrı ilaç satış noktaları.

Müşteri Yorumları

0.0 /5

0

Toplam Yorum

Henüz yorum yapılmamış.