top of page

Profilo

Data di iscrizione: 27 ago 2020

Post (5)

30 mar 20262 min
Cosa fare a Terracina: la guida completa per le tue vacanze sulla Riviera di Ulisse
Terracina è una delle destinazioni più affascinanti del Lazio, situata sulla Riviera di Ulisse tra il Parco Nazionale del Circeo e il confine con la Campania. Mare cristallino, storia millenaria, natura incontaminata e gastronomia tipica rendono questa località una scelta perfetta per una vacanza indimenticabile. Le spiagge di Terracina e Porto Badino Il litorale di Terracina offre chilometri di spiagge sabbiose con acque limpide e poco profonde, ideali per famiglie e coppie. Porto Badino, in...

7
0
12 nov 20251 min
Transfer aeroporto Fiumicino Terracina: Servizio Esclusivo per la tua Villa
L'arrivo in vacanza deve essere un piacere fin dal primo istante.Per garantire il massimo comfort, il Relais Casa Moresca offre un servizio transfer privato dedicato che vi preleva e vi porta in villa. Organizzare il transfer aeroporto Fiumicino Terracina e Ciampino non è mai stato così semplice. Dimenticate lo stress dei taxi e le preoccupazioni logistiche. Se viaggi in treno, la stazione più vicina e comoda è quella di Monte San Biagio , dalla quale organizziamo il tuo transfer finale.

12
0
31 ott 20252 min
Le Perle della Costa: Spiagge libere e calette nascoste tra Terracina e Circeo
Quando pianifichi una vacanza sulla Riviera di Ulisse, il desiderio è sempre quello di fuggire dalle spiagge affollate. Se stai cercando autentiche spiagge libere e calette nascoste tra Terracina e Circeo , questa è la guida che fa per te. Abbiamo raccolto i segreti locali per aiutarti a trovare angoli di paradiso, lontani dalla folla. Ricorda che il tuo soggiorno al Relais Casa Moresca non solo ti offre un rifugio di lusso, ma ti garantisce anche una spiaggia privata ed esclusiva il che ti...

21
0
Pierpaolo Presta

Pierpaolo Presta

Amministratore
Altre azioni
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