top of page

Profile

Join date: Aug 27, 2020

Posts (4)

Nov 12, 20251 min
Exclusive Transfer: Fiumicino to Relais Casa Moresca (Terracina)
The arrival experience should be pleasant from the very first moment. To guarantee maximum comfort, Relais Casa Moresca offers a dedicated private transfer service that picks you up directly from Fiumicino and Ciampino airports and takes you to the villa without stops or waiting. Organizing your Transfer Fiumicino to Relais Casa Moresca  and Ciampino has never been so simple. If traveling by train, the nearest and most convenient station is Monte San Biagio, from which we can arrange your...

11
0
Oct 31, 20252 min
The Pearls of the Coast: Hidden and free beaches and hidden coves between Terracina and Circeo
When planning a vacation on the Riviera di Ulisse, you always want to escape the crowded beaches. If you're looking for authentic free beaches and hidden coves between Terracina and Circeo , this is the guide for you. We've gathered local secrets to help you find corners of paradise, far from the crowds. Remember that your stay at Relais Casa Moresca not only offers you a luxurious retreat, but also guarantees you a private and exclusive beach , putting you in an immediate advantage for...

2
0
Oct 25, 20251 min
Boat Trips Pontine Islands from Porto Badino: Your Guide to Ponza and Palmarola
Non sai come organizzare le escursioni a Ponza e Palmarola? Trova la guida definitiva per la tua gita in barca. Scopri i migliori itinerari e noleggi per raggiungere le Isole Pontine partendo comodamente da Porto Badino, vicino al Relais Casa Moresca.

11
0
Pierpaolo Presta

Pierpaolo Presta

Admin
More actions
bottom of page
/** * Script di Ottimizzazione Velocità Mobile per Wix - VERSIONE FINALE "ESSENTIAL" * POSIZIONE: Body - fine (Obbligatorio) * * OBIETTIVO: * 1. FIX RENDER BLOCKING: Carica le icone Font Awesome in modo asincrono (non rallentano l'avvio). * 2. CPU & LAYOUT: Gestisce SmartTarget/TrustIndex per evitare rallentamenti e strisce bianche. * 3. ICONE: Tutte le icone del sito rimangono visibili e funzionanti. */ (function() { // 1. CSS DI SOPPRESSIONE (Ottimizzato per evitare Layout Thrashing) var css = ` /* Nasconde i contenitori dello script */ .wix-custom-element, .custom-html-wrapper, [data-wix-custom-element] { display: none !important; height: 0 !important; width: 0 !important; overflow: hidden !important; } body { margin: 0 !important; padding: 0 !important; } /* ISOLAMENTO WIDGET PESANTI Usiamo position: absolute per toglierli dal flusso del documento e impedire che il calcolo delle loro dimensioni rallenti la pagina. */ [id*="smartarget"], #st-bar, .trustindex-content, iframe[src*="trustindex"], iframe[src*="smartarget"], iframe[src*="visitor-analytics"] { display: none !important; visibility: hidden !important; position: absolute !important; top: -9999px !important; left: -9999px !important; width: 1px !important; height: 1px !important; pointer-events: none !important; } /* Classe per riattivare i widget all'interazione */ .cpu-saver-active { display: block !important; visibility: visible !important; position: static !important; /* O relative, a seconda del widget */ width: auto !important; height: auto !important; top: auto !important; left: auto !important; pointer-events: auto !important; } /* Fix specifico per banner SmartTarget quando attivo */ .cpu-saver-active[id*="smartarget"] { position: relative !important; } `; var style = document.createElement('style'); style.id = "cpu-saver-css"; style.appendChild(document.createTextNode(css)); document.head.appendChild(style); })(); // 2. GESTORE INTELLIGENTE CPU (Congela SmartTarget/TrustIndex) (function() { let userActive = false; function unfreeze() { if (userActive) return; userActive = true; console.log("⚡ Utente attivo: Sblocco widget..."); // Invece di rimuovere il CSS, aggiungiamo una classe agli elementi // Questo è più performante che modificare i fogli di stile globali var widgets = document.querySelectorAll( '[id*="smartarget"], #st-bar, .trustindex-content, iframe[src*="trustindex"], iframe[src*="smartarget"]' ); widgets.forEach(function(el) { el.classList.add('cpu-saver-active'); }); // Rimuoviamo lo stile restrittivo dopo un attimo per sicurezza setTimeout(function() { var style = document.getElementById("cpu-saver-css"); if (style) { // Manteniamo solo la pulizia dei wrapper Wix style.textContent = ` .wix-custom-element, .custom-html-wrapper { display: none !important; } body { margin: 0 !important; padding: 0 !important; } `; } window.dispatchEvent(new Event('resize')); }, 200); } const events = ['mousedown', 'touchstart', 'scroll', 'mousemove', 'keydown']; events.forEach(ev => window.addEventListener(ev, unfreeze, { once: true, passive: true })); setTimeout(unfreeze, 4500); })(); // 3. GESTORE CSS SWAP (Il cuore della fix per Render Blocking - SALVA LE TUE ICONE!) (function() { try { const CSS_BLOCK = ['cdnjs.cloudflare.com', 'all.min.css']; function swapCSS(node) { if (node.tagName === 'LINK' && node.rel === 'stylesheet') { if (CSS_BLOCK.some(b => node.href.includes(b))) { // 1. Clona il nodo var clone = node.cloneNode(true); // 2. Imposta come non bloccante (caricamento differito) // Questo permette alle icone di caricarsi SENZA bloccare il sito clone.media = 'print'; clone.onload = function() { this.media = 'all'; }; // 3. SOSTITUZIONE FISICA // Inserisci il clone prima dell'originale if (node.parentNode) { node.parentNode.insertBefore(clone, node); // Rimuovi l'originale (questo cancella la richiesta bloccante pendente) node.parentNode.removeChild(node); console.log("🔄 CSS Swapped (Render Block fix):", node.href); } } } } // A. Azione Retroattiva (sui link già presenti) var links = Array.from(document.getElementsByTagName('link')); links.forEach(swapCSS); // B. Observer per nuovi link const obs = new MutationObserver((mutations) => { mutations.forEach((m) => m.addedNodes.forEach((n) => { if (n.nodeType === 1) { swapCSS(n); if (n.hasChildNodes()) { var subLinks = n.getElementsByTagName('link'); for (var i=0; i