{"id":7685,"date":"2026-10-21T16:43:47","date_gmt":"2026-10-21T07:43:47","guid":{"rendered":"https:\/\/ogasawara-dental.com\/wpx\/?p=7685"},"modified":"2026-10-22T16:24:12","modified_gmt":"2026-10-22T07:24:12","slug":"2026%e5%b9%b411%e6%9c%8828%e6%97%a5%ef%bc%88%e5%9c%9f%ef%bc%89%e3%81%ae%e8%a8%ba%e7%99%82%e6%99%82%e9%96%93%e5%a4%89%e6%9b%b4%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6","status":"publish","type":"post","link":"https:\/\/ogasawara-dental.com\/wpx\/?p=7685","title":{"rendered":"2026\u5e7411\u670828\u65e5\uff08\u571f\uff09\u306e\u8a3a\u7642\u6642\u9593\u5909\u66f4\u306b\u3064\u3044\u3066"},"content":{"rendered":"\n<style>#post-7685 .og-notice-past[hidden]{display:none!important}#post-7685 .og-notice-past{margin:0 0 24px;padding:18px 20px;border:1px solid #dce5df;border-left:4px solid #286c69;border-radius:5px;background:#FAF9F6;color:#303b3c}#post-7685 .og-notice-past p{margin:0;line-height:1.9;color:inherit}<\/style>\n<aside id=\"og-notice-7685-past\" class=\"og-notice-past\" role=\"note\" hidden=\"\"><\/aside>\n<script>(function(){\n'use strict';\nfunction createPastNotice({ clock, transport, render, token }) {\n  const END = 1795878000000; \/\/ 2026-11-29 00:00 JST\n  const MAX_LEASE = 600000;\n  let active = false, generation = 0, controller = null, lastMono = -Infinity;\n  let refreshTimer = null, leaseTimer = null, requestTimer = null;\n  function mono() {\n    const n = clock.now();\n    if (!Number.isFinite(n) || n < lastMono) throw Error('clock');\n    lastMono = n;\n    return n;\n  }\n  function cancel(name) {\n    const id = name === 'refresh' ? refreshTimer : name === 'lease' ? leaseTimer : requestTimer;\n    if (id !== null) clock.clearTimeout(id);\n    if (name === 'refresh') refreshTimer = null;\n    else if (name === 'lease') leaseTimer = null;\n    else requestTimer = null;\n  }\n  function schedule(delay) {\n    cancel('refresh');\n    if (active) refreshTimer = clock.setTimeout(refresh, delay);\n  }\n  function clear(state) { render(false, state); }\n  function stop() {\n    active = false; generation++; controller?.abort();\n    cancel('refresh'); cancel('lease'); cancel('request'); clear('inactive');\n  }\n  async function refresh() {\n    if (!active) return false;\n    const gen = ++generation;\n    controller?.abort(); cancel('request'); cancel('refresh');\n    controller = new AbortController();\n    let retry = 60000;\n    try {\n      const start = mono(), id = token();\n      if (!\/^[a-f0-9]{32}$\/.test(id)) throw Error('token');\n      requestTimer = clock.setTimeout(() => {\n        if (gen !== generation) return;\n        generation++; controller.abort(); cancel('lease'); clear('unavailable'); schedule(60000);\n      }, 10000);\n      const b = await transport(id, controller.signal);\n      if (gen !== generation || !active) return false;\n      const elapsed = mono() - start;\n      if (!b || Object.keys(b).sort().join(',') !== 'items,leaseUntilMs,requestId,serverNowMs,version'\n        || b.version !== 1 || b.requestId !== id || !Number.isSafeInteger(b.serverNowMs)\n        || b.serverNowMs < 1577836800000 || b.serverNowMs > 4102444799000\n        || !Number.isSafeInteger(b.leaseUntilMs) || b.leaseUntilMs <= b.serverNowMs\n        || b.leaseUntilMs > b.serverNowMs + MAX_LEASE || !Array.isArray(b.items) || b.items.length > 2\n        || elapsed < 0 || elapsed >= 10000) throw Error('response');\n      \/\/ Only a fresh server response can establish that the boundary has passed.\n      \/\/ Never advance the calendar using the device clock or a cached HTML date.\n      const past = b.serverNowMs >= END;\n      retry = past ? 60000 : Math.min(60000, Math.max(1000, END - b.serverNowMs));\n      const remaining = b.leaseUntilMs - b.serverNowMs - elapsed - 2000;\n      if (remaining <= 0) throw Error('lease');\n      cancel('request'); cancel('lease');\n      render(past, past ? 'verified-past' : 'verified-before');\n      leaseTimer = clock.setTimeout(() => { clear('expired'); }, remaining);\n      schedule(past ? 300000 : Math.min(300000, Math.max(1000, END - b.serverNowMs), Math.max(1000, remaining - 10000)));\n      return true;\n    } catch {\n      if (gen !== generation || !active) return false;\n      cancel('request'); cancel('lease'); clear('unavailable'); schedule(retry); return false;\n    }\n  }\n  function start() { stop(); active = true; return refresh(); }\n  return { start, stop, refresh };\n}\n\nfunction makeClockTransport(fetchImpl) {\n  return async function(id, signal) {\n    const url = new URL('https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/ogasawara-notices\/v1\/current');\n    url.searchParams.set('request_id', id);\n    const r = await fetchImpl(url, {method:'GET', cache:'no-store', credentials:'omit', mode:'same-origin', redirect:'error', signal, headers:{Accept:'application\/json'}});\n    if (r.status !== 200 || r.redirected || !\/^application\\\/json(?:;|$)\/i.test(r.headers.get('Content-Type') || '')\n      || !\/(?:^|,)\\s*no-store\\s*(?:,|$)\/i.test(r.headers.get('Cache-Control') || '')\n      || !\/(?:^|,)\\s*no-transform\\s*(?:,|$)\/i.test(r.headers.get('Cache-Control') || '') || !r.body) throw Error('transport');\n    const reader = r.body.getReader(), decoder = new TextDecoder('utf-8', {fatal:true});\n    let size = 0, text = '';\n    try {\n      while (true) {\n        const chunk = await reader.read();\n        if (chunk.done) { text += decoder.decode(); break; }\n        size += chunk.value.byteLength;\n        if (size > 8192) throw Error('size');\n        text += decoder.decode(chunk.value, {stream:true});\n      }\n    } catch (error) { await reader.cancel().catch(()=>{}); throw error; }\n    finally { reader.releaseLock(); }\n    return JSON.parse(text);\n  };\n}\nfunction renderPastNotice(node, document, show, state) {\n  node.replaceChildren();\n  if (show) {\n    const p = document.createElement('p');\n    p.textContent = '\\u3053\\u306e\\u8a3a\\u7642\\u6642\\u9593\\u5909\\u66f4\\u306f\\u0032\\u0030\\u0032\\u0036\\u5e74\\u0031\\u0031\\u6708\\u0032\\u0038\\u65e5\\uff08\\u571f\\uff09\\u306e\\u904e\\u53bb\\u306e\\u304a\\u77e5\\u3089\\u305b\\u3067\\u3059\\u3002';\n    node.appendChild(p);\n  }\n  node.hidden = !show;\n  node.setAttribute('data-og-expiry-state', state);\n}\nfunction mountPastNotice(document, window) {\n  const node = document.getElementById('og-notice-7685-past');\n  if (!node || !document.body.classList.contains('single-post') || !document.getElementById('post-7685')) return;\n  const client = createPastNotice({\n    clock:{now:()=>window.performance.now(),setTimeout:(fn,ms)=>window.setTimeout(fn,ms),clearTimeout:id=>window.clearTimeout(id)},\n    transport:makeClockTransport(window.fetch.bind(window)),\n    token:()=>Array.from(window.crypto.getRandomValues(new Uint8Array(16)),n=>n.toString(16).padStart(2,'0')).join(''),\n    render:(show,state)=>renderPastNotice(node,document,show,state)\n  });\n  document.addEventListener('visibilitychange',()=>document.hidden?client.stop():client.start());\n  document.addEventListener('freeze',client.stop);\n  window.addEventListener('pagehide',client.stop);\n  window.addEventListener('pageshow',event=>{if(event.persisted&&!document.hidden)client.start();});\n  if (!document.hidden) client.start();\n}\nmountPastNotice(document, window);\n\n})();<\/script>\n\n\n\n<p>11\u670828\u65e5\uff08\u571f\uff09\u306f\u8a3a\u7642\u6642\u9593\u3092\u5909\u66f4\u3057\u3001\u6700\u7d42\u53d7\u4ed811:30\u3001\u8a3a\u7642\u7d42\u4e8612:00\u3068\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u3054\u6848\u5185\u306f2026\u5e7411\u670828\u65e5\uff08\u571f\uff09\u306b\u9650\u308a\u307e\u3059\u3002\u901a\u5e38\u306e\u571f\u66dc\u65e5\u306e\u8a3a\u7642\u6642\u9593\u306f\u5909\u66f4\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>11\u670828\u65e5\uff08\u571f\uff09\u306f\u8a3a\u7642\u6642\u9593\u3092\u5909\u66f4\u3057\u3001\u6700\u7d42\u53d7\u4ed811:30\u3001\u8a3a\u7642\u7d42\u4e8612:00\u3068\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3059\u3002 \u3053\u306e\u3054\u6848\u5185\u306f2026\u5e7411\u670828\u65e5\uff08\u571f\uff09\u306b\u9650\u308a\u307e\u3059\u3002\u901a\u5e38\u306e\u571f\u66dc\u65e5\u306e\u8a3a\u7642\u6642\u9593\u306f\u5909\u66f4\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false},"categories":[5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/posts\/7685"}],"collection":[{"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7685"}],"version-history":[{"count":3,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/posts\/7685\/revisions"}],"predecessor-version":[{"id":7728,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=\/wp\/v2\/posts\/7685\/revisions\/7728"}],"wp:attachment":[{"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ogasawara-dental.com\/wpx\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}