æè©å訳ãã³.comã¯ãK-POPã¨æ´æ¥½ã®æè©ãæ¥æ¬èªã«ç¿»è¨³ããããªã«ãä»ãã§æä¾ãããµã¤ãã§ããæ°æ²ããã¢ãã¡ãã«ã©ãªã±ã®ãããæ²ã¾ã§ã4000æ²ä»¥ä¸ã®å¹
åºãã¸ã£ã³ã«ãã«ãã¼ãã¦ãã¾ãã
æ°æ²ã®ãªã¯ã¨ã¹ããæ´æ°æ
å ±ã®ç¢ºèªã¯ããåãåãããã©ã¼ã ã¨Xã¢ã«ã¦ã³ãããå©ç¨ãã ããã
`;
// è¨äºå
ã®ãã¹ã¦ã®è¦åºãã¿ã°ãåå¾
const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
if (headings.length > 0) {
// æå¾ã®è¦åºãã¿ã°ãåå¾
const lastHeading = headings[headings.length - 1];
console.log('æå¾ã®è¦åºããè¦ã¤ãã¾ãã:', lastHeading.textContent);
// æå¾ã®è¦åºãã¿ã°ã®åã«æ¿å
¥
lastHeading.parentNode.insertBefore(bannerContainer, lastHeading);
console.log('ãã©ãã¼ããã¼ãæå¾ã®è¦åºãã®åã«è¿½å ãã¾ãã');
} else {
// è¦åºããè¦ã¤ãããªãå ´åã¯bodyã®æå¾ã«è¿½å
document.body.appendChild(bannerContainer);
console.log('è¦åºããè¦ã¤ãããªãã£ãããããã©ãã¼ããã¼ãbodyã®æå¾ã«è¿½å ãã¾ãã');
}
// ã¹ãã表示ã®å ´åã¯ãã¬ãã¯ã¹ã縦並ã³ã«ä¿®æ£
if (window.innerWidth < 600) {
const flexContainer = bannerContainer.querySelector('div[style*="display:flex"]');
if (flexContainer) {
flexContainer.style.flexDirection = 'column !important';
flexContainer.style.alignItems = 'center !important';
}
}
} catch (error) {
console.error('ããã¼è¿½å ä¸ã«ã¨ã©ã¼ãçºçãã¾ãã:', error);
}
}
})();
/**
* Core Web Vitals Optimizer - ä¿®æ£ç
*
* - YouTubeåãè¾¼ã¿ãæä¸é¨ã«ç§»å
* - ãµã¼ããã¼ãã£ã¹ã¯ãªããæé©å
* - åºåèªã¿è¾¼ã¿æé©å
*/
(function() {
// ããã©ã¼ãã³ã¹è¨æ¸¬éå§
const perfStart = performance.now();
// ããã¤ã¹æ¤åº
const viewportWidth = window.innerWidth || document.documentElement.clientWidth;
const isMobile = viewportWidth < 768 || /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
//==========================================================
// 1. è¨å®
//==========================================================
const config = {
features: {
youtubeOptimization: true, // YouTubeæé©å
thirdPartyOptimization: true, // ãµã¼ããã¼ãã£ã¹ã¯ãªããæé©å
imageOptimization: true, // ç»åæé©åï¼CLSã«ã¯å½±é¿ããªãè¨å®ã®ã¿ï¼
adOptimization: true, // åºåæé©å
twitterOptimization: true, // Twitteråãè¾¼ã¿æé©å
existingTocToggle: true // ç®æ¬¡ãã°ã«
},
analytics: {
id: 'G-H1MHKGH6MB',
delayMs: isMobile ? 7000 : 5000
},
ads: {
enabled: true,
client: 'ca-pub-3827812849061768',
defaultSlot: '8323635133',
delayMs: isMobile ? 6000 : 4000
},
selectors: {
ads: ['.adsbygoogle'],
images: ['img'],
existingToc: ['ul.table-of-contents'],
lcp: ['.entry-content p:first-of-type', '.entry-title', 'h1']
},
thirdParty: {
scripts: [
{ src: 'widgets.js', domain: 'platform.twitter.com', delay: 5000, condition: () => document.querySelector('.twitter-tweet, .twitter-timeline') !== null },
{ src: 'gtm.js', domain: 'www.googletagmanager.com', delay: 4000, critical: true },
{ src: 'gtag/js', domain: 'www.googletagmanager.com', delay: 5000, critical: true },
{ src: 'jquery.min.js', domain: 'cdn.blog.st-hatena.com', delay: 3000, critical: false, condition: () => window.jQuery === undefined },
{ src: 'hatenablog.js', domain: 'cdn.blog.st-hatena.com', delay: 4000, critical: false },
{ src: 'vendors.js', domain: 'cdn.blog.st-hatena.com', delay: 5000, critical: false, priority: 'low' }
]
}
};
//==========================================================
// 2. ã¦ã¼ãã£ãªãã£é¢æ°
//==========================================================
const utils = {
// å®å
¨ãªDOMæä½
safeQuery: (selector) => {
try {
return document.querySelector(selector);
} catch (e) {
return null;
}
},
safeQueryAll: (selector) => {
try {
return Array.from(document.querySelectorAll(selector));
} catch (e) {
return [];
}
},
// ã¹ã¯ãªããé
å»¶èªã¿è¾¼ã¿
loadScriptAsync: (src, delay = 0, callback = null) => {
setTimeout(() => {
try {
// ãã§ã«èªã¿è¾¼ã¾ãã¦ããã確èª
if (document.querySelector(`script[src*="${src}"]`)) {
if (callback) callback();
return;
}
const script = document.createElement('script');
script.async = true;
script.defer = true;
script.src = src;
if (callback) {
script.onload = callback;
}
document.head.appendChild(script);
} catch (e) {
// ã¨ã©ã¼ç¡è¦
}
}, delay);
},
// æ¢åã®ç®æ¬¡è¦ç´ ãæ¢ã
findExistingToc: () => {
const selectors = config.selectors.existingToc.join(',');
return utils.safeQuery(selectors);
}
};
//==========================================================
// 3. YouTubeæé©åï¼æä¸é¨ç§»åçï¼- å¼·åç
//==========================================================
const youtubeOptimizer = {
initialize() {
if (!config.features.youtubeOptimization) return;
// YouTubeåãè¾¼ã¿ãæ¤ç´¢ãã¦ç§»åãã颿°
this.detectAndMoveYouTube();
},
// YouTubeãæ¤åºãã颿°ãMutation Observerã§å¼·å
detectAndMoveYouTube() {
// 峿æ¤åºã試ã¿ã
let youtubeEmbed = utils.safeQuery('iframe[src*="youtube"], iframe[src*="youtu.be"]');
if (youtubeEmbed) {
this.moveYoutubeToBottom(youtubeEmbed);
return;
}
// h4#YouTubeã®ä¸ãæ¢ã - ãæè©å訳ãã³.comãã®ãµã¤ãæ§é ã«å¯¾å¿
const youtubeHeader = utils.safeQuery('h4#YouTube');
if (youtubeHeader) {
const nextElement = youtubeHeader.nextElementSibling;
if (nextElement && nextElement.tagName === 'IFRAME' &&
nextElement.src && (nextElement.src.includes('youtube') || nextElement.src.includes('youtu.be'))) {
this.moveYoutubeToBottom(nextElement);
return;
}
}
// Lazy Loadingå¯¾å¿ - iframe[loading="lazy"]ãæ¢ã
const lazyIframes = utils.safeQueryAll('iframe[loading="lazy"]');
for (const iframe of lazyIframes) {
if (iframe.getAttribute('src') &&
(iframe.getAttribute('src').includes('youtube') || iframe.getAttribute('src').includes('youtu.be'))) {
this.moveYoutubeToBottom(iframe);
return;
}
}
// ã¾ã è¦ã¤ãããªãå ´åã¯ç£è¦ãè¨å®
this.observeYouTubeLoading();
},
// DOM夿´ãç£è¦ãã¦YouTubeãèªã¿è¾¼ã¾ããã®ãå¾
ã¤
observeYouTubeLoading() {
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
if (mutation.type === 'childList') {
const addedIframes = Array.from(mutation.addedNodes)
.filter(node => node.nodeType === 1 && node.tagName === 'IFRAME')
.filter(iframe => iframe.src &&
(iframe.src.includes('youtube') || iframe.src.includes('youtu.be')));
if (addedIframes.length > 0) {
this.moveYoutubeToBottom(addedIframes[0]);
observer.disconnect();
return;
}
// src屿§ãå¾ãã夿´ãããã±ã¼ã¹ã«å¯¾å¿
const modifiedIframes = utils.safeQueryAll('iframe[src*="youtube"], iframe[src*="youtu.be"]');
if (modifiedIframes.length > 0) {
this.moveYoutubeToBottom(modifiedIframes[0]);
observer.disconnect();
return;
}
} else if (mutation.type === 'attributes') {
// src屿§ã®å¤æ´ãæ¤ç¥
if (mutation.attributeName === 'src' &&
mutation.target.tagName === 'IFRAME' &&
mutation.target.src &&
(mutation.target.src.includes('youtube') || mutation.target.src.includes('youtu.be'))) {
this.moveYoutubeToBottom(mutation.target);
observer.disconnect();
return;
}
}
}
});
// DOM夿´ã¨attributeã®å¤æ´ãç£è¦
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ['src'],
attributeOldValue: true
});
// 10ç§å¾ã«ç£è¦ãçµäºï¼ã¿ã¤ã ã¢ã¦ãï¼
setTimeout(() => observer.disconnect(), 10000);
},
// YouTubeãæä¸é¨ã«ç§»åããå¦ç
moveYoutubeToBottom(youtubeEmbed) {
if (!youtubeEmbed) return;
try {
// ç¾å¨ã®ä½ç½®ãè¨æ¶ããããã®ãã¼ã«ã¼è¦ç´ ã使
const marker = document.createElement('div');
marker.id = 'youtube-original-position';
marker.style.display = 'none';
// ãã¼ã«ã¼ãå
ã®ä½ç½®ã«é
ç½®
youtubeEmbed.parentNode.insertBefore(marker, youtubeEmbed);
// YouTubeã®è¦ªã³ã³ãããããå ´åã¯ãããä¸ç·ã«ç§»å
const parentToMove = youtubeEmbed.closest('div[style*="text-align"]') || youtubeEmbed;
// è¦ç´ ãåãå¤ã
const removedElement = parentToMove.parentNode.removeChild(parentToMove);
// ã³ã³ãã³ãã®æä¸é¨ã«è¿½å ããã³ã³ããã使
const bottomContainer = document.createElement('div');
bottomContainer.id = 'youtube-bottom-container';
bottomContainer.style.marginTop = '40px';
bottomContainer.style.borderTop = '1px solid #eee';
bottomContainer.style.paddingTop = '20px';
// è¦åºãã追å
const heading = document.createElement('h3');
heading.textContent = 'é¢é£åç»';
heading.style.marginBottom = '15px';
bottomContainer.appendChild(heading);
// YouTubeã追å
bottomContainer.appendChild(removedElement);
// ãã¼ã¸ã®æä¸é¨ã«æ¿å
¥ï¼ããã¿ã¼ã®åããã¹ãï¼
const footer = utils.safeQuery('footer') || utils.safeQuery('.footer');
if (footer) {
footer.parentNode.insertBefore(bottomContainer, footer);
} else {
// ããã¿ã¼ããªãå ´åã¯bodyã®æå¾ã«è¿½å
document.body.appendChild(bottomContainer);
}
// ã¢ããªãã£ã¯ã¹è¨æ¸¬ï¼å¿
è¦ã«å¿ãã¦ï¼
if (typeof gtag === 'function') {
gtag('event', 'youtube_moved_to_bottom', {
'event_category': 'core_web_vitals_optimization',
'event_label': 'YouTube embed moved to bottom'
});
}
// YouTubeé¢é£ã®ã¹ã¯ãªãããæé©å
this.optimizeYouTubeFootprint();
} catch (e) {
console.log('YouTubeç§»åã¨ã©ã¼:', e);
}
},
// YouTubeé¢é£ã®ã¹ã¯ãªããã¨ã¹ã¿ã¤ã«ã®ãããããªã³ãæé©å
optimizeYouTubeFootprint() {
// youtube.comããã®ã¹ã¯ãªãããªã¯ã¨ã¹ãããããã¯
const youtubeScripts = utils.safeQueryAll('script[src*="youtube.com"]');
youtubeScripts.forEach(script => {
if (script.parentNode && !script.hasAttribute('data-vital')) {
script.parentNode.removeChild(script);
}
});
}
};
//==========================================================
// 4. åºåæé©å
//==========================================================
const adOptimizer = {
initialize() {
if (!config.features.adOptimization || !config.ads.enabled) return;
try {
// åºåã¹ã¯ãªãããé
å»¶èªã¿è¾¼ã¿
setTimeout(() => {
this.loadAdScript();
}, config.ads.delayMs);
} catch (e) {
console.log('åºåæé©åã¨ã©ã¼:', e);
}
},
// åºåã¹ã¯ãªãããæ¿å
¥
loadAdScript() {
// ãã§ã«èªã¿è¾¼ã¿æ¸ã¿ãªãã¹ããã
if (document.querySelector('script[src*="adsbygoogle.js"][data-loaded="true"]')) {
return;
}
const script = document.createElement('script');
script.async = true;
script.defer = true;
script.dataset.loaded = 'true';
script.src = `https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${config.ads.client}`;
script.crossOrigin = 'anonymous';
document.head.appendChild(script);
}
};
//==========================================================
// 5. Twitteræé©å
//==========================================================
const twitterOptimizer = {
initialize() {
if (!config.features.twitterOptimization) return;
const twitterEmbeds = utils.safeQueryAll('.twitter-tweet, .twitter-timeline');
if (twitterEmbeds.length === 0) return;
// Twitteråãè¾¼ã¿ã¹ã¯ãªããããããã¯
this.blockTwitterScripts();
// åãè¾¼ã¿ããã¬ã¼ã¹ãã«ãã¼ã«ç½®ãæã
twitterEmbeds.forEach(embed => {
this.replaceWithPlaceholder(embed);
});
// ã¯ãªãã¯ã¤ãã³ãã®ããªã²ã¼ã·ã§ã³ãè¨å®
document.addEventListener('click', (e) => {
const placeholder = e.target.closest('.twitter-placeholder');
if (placeholder) {
this.loadTwitterEmbed(placeholder);
}
});
},
// Twitterã¹ã¯ãªããããããã¯
blockTwitterScripts() {
const twitterScripts = utils.safeQueryAll('script[src*="platform.twitter.com"]');
twitterScripts.forEach(script => {
if (script.parentNode) {
script.parentNode.removeChild(script);
}
});
},
// ãã¬ã¼ã¹ãã«ãã¼ã«ç½®ãæã
replaceWithPlaceholder(embed) {
// ãªãªã¸ãã«ã®HTMLãä¿å
const originalHTML = embed.outerHTML;
// ãã¬ã¼ã¹ãã«ãã¼ä½æ
const placeholder = document.createElement('div');
placeholder.className = 'twitter-placeholder';
placeholder.style.border = '1px solid #ccc';
placeholder.style.padding = '15px';
placeholder.style.margin = '10px 0';
placeholder.style.backgroundColor = '#f8f8f8';
placeholder.style.cursor = 'pointer';
placeholder.style.textAlign = 'center';
placeholder.innerHTML = '
Twitteræç¨¿ã表示
ã¯ãªãã¯ã§èªã¿è¾¼ã¿
';
placeholder.dataset.originalHtml = originalHTML;
// ãã¬ã¼ã¹ãã«ãã¼ã¨å
¥ãæ¿ã
embed.parentNode.replaceChild(placeholder, embed);
},
// Twitteråãè¾¼ã¿ãèªã¿è¾¼ã
loadTwitterEmbed(placeholder) {
const originalHtml = placeholder.dataset.originalHtml;
// ãã¼ãã£ã³ã°è¡¨ç¤º
placeholder.innerHTML = '
èªã¿è¾¼ã¿ä¸...
';
// ãªãªã¸ãã«HTMLã«æ»ã
const temp = document.createElement('div');
temp.innerHTML = originalHTML;
const originalElement = temp.firstChild;
// ãã¬ã¼ã¹ãã«ãã¼ãç½®ãæã
placeholder.parentNode.replaceChild(originalElement, placeholder);
// Twitterã¦ã£ã¸ã§ããã¹ã¯ãªãããèªã¿è¾¼ã
if (!document.querySelector('script[src*="platform.twitter.com/widgets.js"]')) {
utils.loadScriptAsync('https://platform.twitter.com/widgets.js', 0);
} else if (window.twttr && window.twttr.widgets) {
window.twttr.widgets.load();
}
}
};
//==========================================================
// 6. ç»åæé©å (CLSã«å½±é¿ããªãç¨åº¦ã«)
//==========================================================
const imageOptimizer = {
initialize() {
if (!config.features.imageOptimization) return;
try {
// éè¦ãªç»åãåªå
èªã¿è¾¼ã¿
const headingImages = utils.safeQueryAll('h1 img, h2 img, .entry-title img, .entry-content > p:first-of-type img');
headingImages.forEach(img => {
if (!img.hasAttribute('data-handled')) {
img.loading = 'eager';
img.fetchpriority = 'high';
img.setAttribute('data-handled', 'true');
}
});
} catch (e) {
console.log('ç»åæé©åã¨ã©ã¼:', e);
}
}
};
//==========================================================
// 7. ãµã¼ããã¼ãã£ã¹ã¯ãªããæé©å
//==========================================================
const thirdPartyOptimizer = {
initialize() {
if (!config.features.thirdPartyOptimization) return;
// ã¹ã¯ãªãããªã¹ãåå¾
const scripts = Array.from(document.querySelectorAll('script[src]'));
// GTMã¨Googleåºåã®éè¤ãåé¤
this.optimizeGTM();
// ãµã¼ããã¼ãã£ã¹ã¯ãªããã®æé©å
this.optimizeThirdPartyScripts(scripts);
// jQueryä¾åã忏
this.reduceJQueryDependency();
},
// GTMã®éè¤ãåé¤ã»æé©å
optimizeGTM() {
// GTMã®éè¤åé¤
const gtmScripts = utils.safeQueryAll('script[src*="googletagmanager.com/gtm.js"]');
if (gtmScripts.length > 1) {
const primaryGtmId = gtmScripts[0].src.match(/[?&]id=([^&]*)/)?.[1] || '';
// 2ã¤ç®ä»¥éãåé¤
for (let i = 1; i < gtmScripts.length; i++) {
const currentId = gtmScripts[i].src.match(/[?&]id=([^&]*)/)?.[1] || '';
if (!currentId || currentId === primaryGtmId) {
if (gtmScripts[i].parentNode) {
gtmScripts[i].parentNode.removeChild(gtmScripts[i]);
}
}
}
}
// GTAGã®éè¤åé¤
const gtagScripts = utils.safeQueryAll('script[src*="googletagmanager.com/gtag/js"]');
if (gtagScripts.length > 1) {
for (let i = 1; i < gtagScripts.length; i++) {
if (gtagScripts[i].parentNode) {
gtagScripts[i].parentNode.removeChild(gtagScripts[i]);
}
}
}
// ã¢ããªãã£ã¯ã¹ã®é
å»¶èªã¿è¾¼ã¿
if (gtagScripts.length > 0) {
const originalSrc = gtagScripts[0].src;
if (gtagScripts[0].parentNode) {
gtagScripts[0].parentNode.removeChild(gtagScripts[0]);
// 7ç§å¾ã«èªã¿è¾¼ã¿
setTimeout(() => {
utils.loadScriptAsync(originalSrc, 0);
}, 7000);
}
}
},
// ãµã¼ããã¼ãã£ã¹ã¯ãªããã®æé©å
optimizeThirdPartyScripts(scripts) {
// è¨å®ããã¹ã¯ãªãããã¿ã¼ã³ã«ä¸è´ãããã®ãå¦ç
config.thirdParty.scripts.forEach(scriptConfig => {
const pattern = `${scriptConfig.domain}/${scriptConfig.src}`;
// æ¡ä»¶ãã§ãã¯
const shouldLoad = scriptConfig.condition ? scriptConfig.condition() : true;
if (!shouldLoad) return;
// ç¾å¨èªã¿è¾¼ã¾ãã¦ããã¹ã¯ãªããããã§ãã¯
scripts.forEach(script => {
if (script.src.includes(pattern) && !scriptConfig.critical) {
// éè¦ã§ãªãã¹ã¯ãªããã¯åé¤ãã¦å¾ã§é
å»¶èªã¿è¾¼ã¿
if (script.parentNode) {
const originalSrc = script.src;
script.parentNode.removeChild(script);
// åªå
度ã«å¿ããé
å»¶èªã¿è¾¼ã¿
if (scriptConfig.priority === 'low' && 'requestIdleCallback' in window) {
requestIdleCallback(() => {
utils.loadScriptAsync(originalSrc, scriptConfig.delay);
}, { timeout: 10000 });
} else {
setTimeout(() => {
utils.loadScriptAsync(originalSrc, 0);
}, scriptConfig.delay);
}
}
}
});
});
},
// jQueryä¾åã忏
reduceJQueryDependency() {
// jQueryããã§ã«åå¨ãããªãå¦çããªã
if (window.jQuery) return;
// jQueryäºæã®æå°éã®å®è£
ãæä¾
window.$ = window.$ || function(selector) {
if (typeof selector === 'function') {
if (document.readyState !== 'loading') {
selector();
} else {
document.addEventListener('DOMContentLoaded', selector);
}
return;
}
return document.querySelector(selector);
};
// è¤æ°è¦ç´ åå¾ç¨ã®ãã«ãã¼
window.$$ = window.$$ || function(selector) {
return Array.from(document.querySelectorAll(selector));
};
}
};
//==========================================================
// 8. ç®æ¬¡ãã°ã«ï¼å
ã®å®è£
ã使ç¨ï¼
//==========================================================
const tocToggler = {
initialize() {
if (!config.features.existingTocToggle) return;
try {
// æ¢åã®ç®æ¬¡ãæ¢ã
const existingToc = utils.findExistingToc();
if (!existingToc) return;
// ç®æ¬¡ãé表示ã«ãã
existingToc.style.display = 'none';
// ãã°ã«ãã¿ã³ã使
const tocButton = document.createElement('button');
tocButton.className = 'toc-toggle-button';
tocButton.textContent = 'ç®æ¬¡ã表示';
tocButton.setAttribute('aria-expanded', 'false');
// ãã¿ã³ãã¯ãªãã¯ããã¨ãã®æåãè¨å®
tocButton.addEventListener('click', () => {
const isOpen = tocButton.classList.toggle('open');
existingToc.classList.toggle('show');
tocButton.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
tocButton.textContent = isOpen ? 'ç®æ¬¡ãéãã' : 'ç®æ¬¡ã表示';
// 表示/é表示åãæ¿ã
existingToc.style.display = isOpen ? 'block' : 'none';
});
// ãã¿ã³ãç®æ¬¡ã®åã«æ¿å
¥
if (existingToc.parentNode) {
existingToc.parentNode.insertBefore(tocButton, existingToc);
}
// æ¨æºAPIã«ããã¹ã ã¼ãºã¹ã¯ãã¼ã«å®è£
const tocLinks = existingToc.querySelectorAll('a[href^="#"]');
tocLinks.forEach(link => {
if (!link) return;
link.addEventListener('click', (e) => {
e.preventDefault();
const targetId = link.getAttribute('href');
if (!targetId) return;
const targetElement = document.querySelector(targetId);
if (targetElement) {
// æ¨æºAPIã§ã¹ã ã¼ãºã¹ã¯ãã¼ã«
targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
// å±¥æ´ã«è¿½å
try {
history.pushState(null, null, targetId);
} catch (e) {
// ã¨ã©ã¼ç¡è¦
}
// ã¢ãã¤ã«ã§ã¯ç®æ¬¡ãèªåã§éãã
if (isMobile) {
tocButton.classList.remove('open');
existingToc.classList.remove('show');
tocButton.setAttribute('aria-expanded', 'false');
tocButton.textContent = 'ç®æ¬¡ã表示';
existingToc.style.display = 'none';
}
}
});
});
} catch (e) {
console.log('ç®æ¬¡ãã°ã«ã¨ã©ã¼:', e);
}
}
};
//==========================================================
// ã¡ã¤ã³åæå颿°
//==========================================================
function init() {
try {
// 1. æåã«YouTubeæé©å
youtubeOptimizer.initialize();
// 2. ç»åã®æé©åï¼CLSã«å½±é¿ããªãç¨åº¦ï¼
imageOptimizer.initialize();
// åªå
度ã®ä½ãå¦çã¯é
å»¶å®è¡
if ('requestIdleCallback' in window) {
// 3. ãµã¼ããã¼ãã£ã¹ã¯ãªããæé©å
requestIdleCallback(() => {
thirdPartyOptimizer.initialize();
}, { timeout: 3000 });
// 4. Twitteråãè¾¼ã¿æé©å
requestIdleCallback(() => {
twitterOptimizer.initialize();
}, { timeout: 4000 });
// 5. ç®æ¬¡ãã°ã«
requestIdleCallback(() => {
tocToggler.initialize();
}, { timeout: 1500 }); // ç®æ¬¡ãæ©ãã«å¦ç
// 6. åºåã®æé©å
window.addEventListener('load', () => {
requestIdleCallback(() => {
adOptimizer.initialize();
}, { timeout: 4000 });
});
} else {
// requestIdleCallbackã使ããªãå ´åã¯é
å»¶å®è¡
setTimeout(() => thirdPartyOptimizer.initialize(), 1000);
setTimeout(() => twitterOptimizer.initialize(), 2000);
setTimeout(() => tocToggler.initialize(), 500); // ç®æ¬¡ãæ©ãã«å¦ç
window.addEventListener('load', () => {
setTimeout(() => adOptimizer.initialize(), 2000);
});
}
} catch (e) {
console.log('åæåã¨ã©ã¼:', e);
}
}
// éè¤åæå鲿¢
if (window.cwvOptimizerInitialized) {
console.log('æé©åã¹ã¯ãªããã¯ãã§ã«åæåããã¦ãã¾ã');
} else {
window.cwvOptimizerInitialized = true;
// DOMContentLoadedã¾ãã¯å³æå®è¡
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
}
// ããã©ã¼ãã³ã¹è¨æ¸¬çµäº
console.log(`Core Web Vitalsæé©åå®è¡æé: ${(performance.now() - perfStart).toFixed(2)}ms`);
})();