স্পেকুলেশন রুলস এপিআই দিয়ে তাত্ক্ষণিক নেভিগেশন অর্জন করুন

1। পরিচিতি

স্পেকুলেশন রুলস API ব্যবহার করে প্রিরেন্ডারিংয়ের মাধ্যমে কীভাবে তাত্ক্ষণিক নেভিগেশনগুলি অর্জন করা যায় সে সম্পর্কে শেখার জন্য একটি ইন্টারেক্টিভ ডেমো এবং কোডল্যাব।

কোডল্যাবটি সম্পূর্ণ হতে 30 মিনিট সময় লাগবে বলে অনুমান করা হয় এবং আপনি স্ক্রিনের শীর্ষে অবশিষ্ট সময় ট্র্যাক করতে পারেন।

পূর্বশর্ত

  • এইচটিএমএল এবং জাভাস্ক্রিপ্ট সম্পর্কে শিক্ষানবিসদের জ্ঞান।

তুমি কি শিখেছ

  • কিভাবে একটি ওয়েবসাইটে অনুমানমূলক লোডিং যোগ করতে হয়।
  • Chrome DevTools ব্যবহার করে অনুমান সংক্রান্ত সমস্যাগুলি কীভাবে ডিবাগ করবেন।

তুমি কি চাও

  • Chrome 123 বা তার পরে।
  • একটি ওয়েবসাইট চালানো বা প্রকাশ করার ক্ষমতা (উদাহরণটি গ্লিচ ব্যবহার করে, তবে অনুরূপ পরিষেবা বা স্থানীয়ভাবে চালানো ওয়েব সার্ভার করবে)।

প্রস্তুত? তাহলে শুরু করা যাক!

2. আপনার পরিবেশ সেট আপ করুন

এই ডেমোতে আপনার প্রথম ধাপ হল 3টি পৃষ্ঠা সহ Glitch- এ একটি টেস্ট সাইট তৈরি করুন:

  • পৃষ্ঠা 1 হল হোম পেজ, পৃষ্ঠা 2 এবং পৃষ্ঠা 3 এর লিঙ্ক সহ৷
  • একটি ধীর লোডিং পৃষ্ঠা অনুকরণ করতে একটি ব্লকিং স্ক্রিপ্ট সহ পৃষ্ঠা 2 ৷ আপনি পৃষ্ঠার লোডিং সময়ের পরিমাপ হিসাবে কনসোলে সবচেয়ে বড় বিষয়বস্তু পেইন্ট (LCP) সময় লগ করবেন।
  • পৃষ্ঠা 3 পৃষ্ঠা 2 এর কাছাকাছি একটি অনুলিপি কিন্তু এবার একটি চিত্র LCP সহ, তাই ডেমোতে দুটি লিঙ্ক থাকবে।

আপনার যদি নিজের ডেমো সাইট থাকে যার পরিবর্তে আপনি কাজ করতে চান, তাহলে নির্দ্বিধায় এতে সমতুল্য পদক্ষেপগুলি করুন৷

Glitch ব্যবহার করতে, আপনার একটি Glitch অ্যাকাউন্ট থাকতে হবে। আপনি স্থানীয় ডেভেলপমেন্ট সার্ভার থেকে এই পৃষ্ঠাগুলি পরিবেশন করতে পারেন, বা অন্য প্ল্যাটফর্ম/পরিষেবা ব্যবহার করতে পারেন যদি আপনি এটি কীভাবে করবেন তার সাথে পরিচিত হন (সেগুলি এখানে কভার করা হয়নি)।

Glitch Basic ওয়েবসাইট রিমিক্স করে ওয়েবসাইট তৈরি করুন।

এটি আপনাকে মৌলিক সাইট দিতে হবে:

গ্লিচ হ্যালো ওয়ার্ল্ড মৌলিক সাইট

গ্লিচ আপনার প্রজেক্টকে একটি এলোমেলো নাম দেয় (এই উদাহরণে open-chalk-asparagus.glitch.me ), এবং আপনি glitch.me এ একটি সাবডোমেন হিসাবে প্রকল্পের নামে সেই প্রকল্পটি দেখতে পারেন। এই উদাহরণে, এটি https://open-chalk-asparagus.glitch.me/ এ রয়েছে।

আপনি বাম দিকের তালিকায় নতুন ফাইলগুলি নির্বাচন এবং যোগ করতে পারেন এবং ডানদিকে বিষয়বস্তু সম্পাদনা করতে পারেন৷ নীচের প্রিভিউ বোতামে ক্লিক করলে আপনি পাশের প্যানে বা একটি নতুন উইন্ডোতে পূর্বরূপ দেখতে পারবেন।

আপনি এখন আপনার পরিবেশ সেট আপ করেছেন, এবং আপনার ডেমো সাইট সেট আপ করার জন্য পরবর্তী ধাপে যেতে পারেন।

3. ডেমো সাইট তৈরি করুন

কয়েকটি লিঙ্ক সহ একটি মৌলিক পৃষ্ঠা সেট আপ করতে index.html ফাইলের বিষয়বস্তু প্রতিস্থাপন করুন:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🚀</text></svg>">
    <title>Instant Loading Demo!</title>
  </head>
  <body>
    <h1>Instant Loading Demo!</h1>
    <p>This is a demo of the Speculation Rules API.</p>
    <ul>
      <li><a href="./page2.html">Page 2</a></li>
      <li><a href="./page3.html">Page 3</a></li>
    </ul>
  </body>
</html>

বাম দিকের Files + বোতামে ক্লিক করে, page2.html টাইপ করে এবং এই ফাইলটি যোগ করুন ক্লিক করে আপনার সমস্যায় page2.html পৃষ্ঠা তৈরি করুন।

নিম্নলিখিত বিষয়বস্তু অনুলিপি করে page2.html এ পেস্ট করুন:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🚀</text></svg>">
    
    <title>Page 2</title>
    
    <!-- Load script as a classic script to allow it to be blocking -->
    <script src="./script.js"></script>

  </head>
  <body>
    <h1>This is page 2</h1>
    <h2>This is a demo of the Speculation Rules API.</h2>
    <button onclick="history.back();">Go back</button>
  </body>
</html>

এবং নিম্নলিখিত বিষয়বস্তু সহ একটি page3.html (এটি পৃষ্ঠা 2 এর সাথে প্রায় একই রকম, তবে আমরা এতে একটি চিত্র যুক্ত করেছি):

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🚀</text></svg>">
    
    <title>Page 3</title>

    <!-- Load script as a classic script to allow it to be blocking -->
    <script src="./script.js"></script>

  </head>
  <body>
    <h1>This is page 3</h1>
    <p>This is a demo of the Speculation Rules API.</p>
    <button onclick="history.back();">Go back</button>
    <img src="./image.svg" alt="LCP image">
  </body>
</html>

পৃষ্ঠা 3 একটি image.svg ফাইলকে নির্দেশ করে তাই আসুন নিম্নলিখিত বিষয়বস্তু দিয়ে এটি তৈরি করি:

<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0.0 0.0 384.0 288.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10"><clipPath id="p.0"><path d="m0 0l384.0 0l0 288.0l-384.0 0l0 -288.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l384.0 0l0 288.0l-384.0 0z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m47.99836 24.0l288.0 0l0 96.0l-288.0 0z" fill-rule="evenodd"/><path fill="#2979ff" d="m115.79305 40.46437l11.875 0l0 51.75l26.671867 0l0 11.265625l-38.546867 0l0 -63.015625zm76.99615 64.421875q-9.15625 0 -16.71875 -4.34375q-7.5625 -4.359375 -11.921875 -11.890625q-4.359375 -7.53125 -4.359375 -16.671875q0 -9.15625 4.359375 -16.671875q4.359375 -7.53125 11.921875 -11.890625q7.5625 -4.359375 16.71875 -4.359375q14.25 0 23.578125 10.296875l-8.359375 8.09375q-6.0625 -7.125 -15.125 -7.125q-5.90625 0 -10.75 2.6875q-4.828125 2.6875 -7.609375 7.625q-2.765625 4.921875 -2.765625 11.34375q0 6.421875 2.765625 11.359375q2.78125 4.921875 7.609375 7.609375q4.84375 2.671875 10.75 2.671875q9.9375 0 16.625 -8.265625l8.453125 8.0q-4.671875 5.640625 -11.046875 8.59375q-6.375 2.9375 -14.125 2.9375zm36.17192 -64.421875l22.171875 0q5.984375 0 10.90625 2.515625q4.9375 2.515625 7.75 7.046875q2.8125 4.53125 2.8125 10.328125q0 5.8125 -2.8125 10.390625q-2.8125 4.578125 -7.75 7.09375q-4.921875 2.5 -10.90625 2.5l-10.296875 0l0 23.140625l-11.875 0l0 -63.015625zm22.53125 28.609375q4.390625 0 6.890625 -2.546875q2.515625 -2.5625 2.515625 -6.171875q0 -3.609375 -2.515625 -6.109375q-2.5 -2.515625 -6.890625 -2.515625l-10.65625 0l0 17.34375l10.65625 0z" fill-rule="nonzero"/><path fill="#0cce6b" d="m43.2 177.60136l96.0 0l0 38.393692l-96.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m77.08874 201.5057q-1.234375 0 -2.265625 -0.578125q-1.03125 -0.59375 -1.640625 -1.609375q-0.59375 -1.03125 -0.59375 -2.296875q0 -1.265625 0.59375 -2.28125q0.609375 -1.03125 1.640625 -1.609375q1.03125 -0.59375 2.265625 -0.59375q0.984375 0 1.8125 0.34375q0.828125 0.34375 1.390625 0.96875l-0.90625 0.921875q-0.875 -0.984375 -2.296875 -0.984375q-0.84375 0 -1.578125 0.40625q-0.734375 0.390625 -1.171875 1.140625q-0.421875 0.734375 -0.421875 1.6875q0 0.953125 0.4375 1.703125q0.4375 0.734375 1.15625 1.140625q0.734375 0.390625 1.578125 0.390625q1.359375 0 2.21875 -0.84375q0.265625 -0.265625 0.453125 -0.671875q0.1875 -0.40625 0.265625 -0.90625l-2.953125 0l0 -1.15625l4.171875 0q0.078125 0.40625 0.078125 0.6875q0 0.828125 -0.265625 1.5625q-0.25 0.734375 -0.796875 1.296875q-0.578125 0.625 -1.390625 0.953125q-0.796875 0.328125 -1.78125 0.328125zm9.765564 0q-1.234375 0 -2.265625 -0.59375q-1.015625 -0.609375 -1.59375 -1.625q-0.578125 -1.03125 -0.578125 -2.265625q0 -1.234375 0.578125 -2.25q0.578125 -1.03125 1.59375 -1.625q1.03125 -0.609375 2.265625 -0.609375q1.25 0 2.265625 0.609375q1.015625 0.59375 1.59375 1.625q0.59375 1.015625 0.59375 2.25q0 1.234375 -0.59375 2.265625q-0.578125 1.015625 -1.59375 1.625q-1.015625 0.59375 -2.265625 0.59375zm0 -1.25q0.875 0 1.578125 -0.40625q0.71875 -0.421875 1.125 -1.15625q0.421875 -0.734375 0.421875 -1.671875q0 -0.9375 -0.421875 -1.671875q-0.40625 -0.734375 -1.125 -1.140625q-0.703125 -0.421875 -1.578125 -0.421875q-0.859375 0 -1.578125 0.421875q-0.703125 0.40625 -1.125 1.140625q-0.40625 0.734375 -0.40625 1.671875q0 0.9375 0.40625 1.671875q0.421875 0.734375 1.125 1.15625q0.71875 0.40625 1.578125 0.40625zm9.864075 1.25q-1.234375 0 -2.265625 -0.59375q-1.015625 -0.609375 -1.59375 -1.625q-0.578125 -1.03125 -0.578125 -2.265625q0 -1.234375 0.578125 -2.25q0.578125 -1.03125 1.59375 -1.625q1.03125 -0.609375 2.265625 -0.609375q1.25 0 2.265625 0.609375q1.015625 0.59375 1.59375 1.625q0.59375 1.015625 0.59375 2.25q0 1.234375 -0.59375 2.265625q-0.578125 1.015625 -1.59375 1.625q-1.015625 0.59375 -2.265625 0.59375zm0 -1.25q0.875 0 1.578125 -0.40625q0.71875 -0.421875 1.125 -1.15625q0.421875 -0.734375 0.421875 -1.671875q0 -0.9375 -0.421875 -1.671875q-0.40625 -0.734375 -1.125 -1.140625q-0.703125 -0.421875 -1.578125 -0.421875q-0.859375 0 -1.578125 0.421875q-0.703125 0.40625 -1.125 1.140625q-0.40625 0.734375 -0.40625 1.671875q0 0.9375 0.40625 1.671875q0.421875 0.734375 1.125 1.15625q0.71875 0.40625 1.578125 0.40625zm5.968445 -7.53125l2.75 0q1.328125 0 2.3125 0.546875q1.0 0.53125 1.53125 1.515625q0.53125 0.96875 0.53125 2.234375q0 1.265625 -0.53125 2.25q-0.53125 0.96875 -1.53125 1.515625q-0.984375 0.53125 -2.3125 0.53125l-2.75 0l0 -8.59375zm2.71875 7.34375q1.453125 0 2.265625 -0.8125q0.8125 -0.8125 0.8125 -2.234375q0 -1.421875 -0.8125 -2.234375q-0.8125 -0.8125 -2.265625 -0.8125l-1.390625 0l0 6.09375l1.390625 0z" fill-rule="nonzero"/><path fill="#ffa400" d="m139.2 177.60132l105.60631 0l0 38.393692l-105.60631 0z" fill-rule="evenodd"/><path fill="#000000" d="m173.98776 185.72441l1.5625 0l3.890625 6.3125l0.0625 0l-0.0625 -1.65625l0 -4.65625l1.3125 0l0 8.59375l-1.375 0l-4.078125 -6.640625l-0.078125 0l0.078125 1.65625l0 4.984375l-1.3125 0l0 -8.59375zm8.700058 0l5.21875 0l0 1.25l-3.890625 0l0 2.421875l3.5 0l0 1.25l-3.5 0l0 2.421875l3.890625 0l0 1.25l-5.21875 0l0 -8.59375zm6.864044 0l5.21875 0l0 1.25l-3.890625 0l0 2.421875l3.5 0l0 1.25l-3.5 0l0 2.421875l3.890625 0l0 1.25l-5.21875 0l0 -8.59375zm6.864044 0l2.75 0q1.328125 0 2.3125 0.546875q1.0 0.53125 1.53125 1.515625q0.53125 0.96875 0.53125 2.234375q0 1.265625 -0.53125 2.25q-0.53125 0.96875 -1.53125 1.515625q-0.984375 0.53125 -2.3125 0.53125l-2.75 0l0 -8.59375zm2.71875 7.34375q1.453125 0 2.265625 -0.8125q0.8125 -0.8125 0.8125 -2.234375q0 -1.421875 -0.8125 -2.234375q-0.8125 -0.8125 -2.265625 -0.8125l-1.390625 0l0 6.09375l1.390625 0zm8.42131 1.4375q-1.0625 0 -1.921875 -0.625q-0.84375 -0.625 -1.1875 -1.75l1.25 -0.5q0.1875 0.71875 0.671875 1.171875q0.5 0.453125 1.203125 0.453125q0.640625 0 1.09375 -0.328125q0.453125 -0.34375 0.453125 -0.921875q0 -0.546875 -0.40625 -0.890625q-0.390625 -0.359375 -1.359375 -0.703125l-0.546875 -0.1875q-0.875 -0.3125 -1.453125 -0.859375q-0.578125 -0.5625 -0.578125 -1.484375q0 -0.640625 0.34375 -1.171875q0.34375 -0.546875 0.953125 -0.859375q0.625 -0.3125 1.40625 -0.3125q1.109375 0 1.78125 0.546875q0.671875 0.546875 0.90625 1.21875l-1.1875 0.515625q-0.109375 -0.4375 -0.5 -0.75q-0.375 -0.3125 -1.0 -0.3125q-0.578125 0 -1.0 0.3125q-0.40625 0.3125 -0.40625 0.796875q0 0.4375 0.359375 0.734375q0.375 0.296875 1.140625 0.5625l0.5625 0.1875q1.09375 0.390625 1.6875 1.0q0.609375 0.609375 0.609375 1.625q0 0.84375 -0.421875 1.421875q-0.421875 0.5625 -1.09375 0.84375q-0.671875 0.265625 -1.359375 0.265625zm3.431305 -0.1875l0 0z" fill-rule="nonzero"/><path fill="#000000" d="m150.18561 199.72441l1.328125 0l0 8.59375l-1.328125 0l0 -8.59375zm3.2520294 0l1.78125 0l2.5 6.546875l0.078125 0l2.515625 -6.546875l1.78125 0l0 8.59375l-1.296875 0l0 -4.859375l0.078125 -1.53125l-0.078125 0l-2.515625 6.390625l-1.03125 0l-2.515625 -6.390625l-0.0625 0l0.0625 1.53125l0 4.859375l-1.296875 0l0 -8.59375zm10.596069 0l2.953125 0q0.765625 0 1.40625 0.34375q0.640625 0.328125 1.015625 0.9375q0.390625 0.59375 0.390625 1.34375q0 0.765625 -0.390625 1.359375q-0.375 0.59375 -1.015625 0.9375q-0.640625 0.328125 -1.40625 0.328125l-1.625 0l0 3.34375l-1.328125 0l0 -8.59375zm2.984375 4.015625q0.671875 0 1.0625 -0.40625q0.40625 -0.421875 0.40625 -0.984375q0 -0.546875 -0.40625 -0.953125q-0.390625 -0.421875 -1.0625 -0.421875l-1.65625 0l0 2.765625l1.65625 0zm4.131668 -4.015625l3.015625 0q0.78125 0 1.40625 0.34375q0.640625 0.328125 1.0 0.9375q0.359375 0.59375 0.359375 1.34375q0 0.875 -0.5625 1.546875q-0.546875 0.65625 -1.390625 0.875l-0.015625 0.0625l2.375 3.40625l0 0.078125l-1.53125 0l-2.28125 -3.375l-1.046875 0l0 3.375l-1.328125 0l0 -8.59375zm2.984375 4.015625q0.625 0 1.046875 -0.390625q0.421875 -0.40625 0.421875 -1.0q0 -0.5625 -0.390625 -0.96875q-0.390625 -0.421875 -1.03125 -0.421875l-1.703125 0l0 2.78125l1.65625 0zm8.351303 4.765625q-1.234375 0 -2.265625 -0.59375q-1.015625 -0.609375 -1.59375 -1.625q-0.578125 -1.03125 -0.578125 -2.265625q0 -1.234375 0.578125 -2.25q0.578125 -1.03125 1.59375 -1.625q1.03125 -0.609375 2.265625 -0.609375q1.25 0 2.265625 0.609375q1.015625 0.59375 1.59375 1.625q0.59375 1.015625 0.59375 2.25q0 1.234375 -0.59375 2.265625q-0.578125 1.015625 -1.59375 1.625q-1.015625 0.59375 -2.265625 0.59375zm0 -1.25q0.875 0 1.578125 -0.40625q0.71875 -0.421875 1.125 -1.15625q0.421875 -0.734375 0.421875 -1.671875q0 -0.9375 -0.421875 -1.671875q-0.40625 -0.734375 -1.125 -1.140625q-0.703125 -0.421875 -1.578125 -0.421875q-0.859375 0 -1.578125 0.421875q-0.703125 0.40625 -1.125 1.140625q-0.40625 0.734375 -0.40625 1.671875q0 0.9375 0.40625 1.671875q0.421875 0.734375 1.125 1.15625q0.71875 0.40625 1.578125 0.40625zm4.811569 -7.53125l1.4375 0l1.9375 5.71875l0.3125 0.96875l0.0625 0l0.328125 -0.96875l2.03125 -5.71875l1.4375 0l-3.140625 8.59375l-1.359375 0l-3.046875 -8.59375zm8.680923 0l5.21875 0l0 1.25l-3.890625 0l0 2.421875l3.5 0l0 1.25l-3.5 0l0 2.421875l3.890625 0l0 1.25l-5.21875 0l0 -8.59375zm6.864044 0l1.78125 0l2.5 6.546875l0.078125 0l2.515625 -6.546875l1.78125 0l0 8.59375l-1.296875 0l0 -4.859375l0.078125 -1.53125l-0.078125 0l-2.515625 6.390625l-1.03125 0l-2.515625 -6.390625l-0.0625 0l0.0625 1.53125l0 4.859375l-1.296875 0l0 -8.59375zm10.596069 0l5.21875 0l0 1.25l-3.890625 0l0 2.421875l3.5 0l0 1.25l-3.5 0l0 2.421875l3.890625 0l0 1.25l-5.21875 0l0 -8.59375zm6.864044 0l1.5625 0l3.890625 6.3125l0.0625 0l-0.0625 -1.65625l0 -4.65625l1.3125 0l0 8.59375l-1.375 0l-4.078125 -6.640625l-0.078125 0l0.078125 1.65625l0 4.984375l-1.3125 0l0 -8.59375zm10.450058 1.25l-2.40625 0l0 -1.25l6.125 0l0 1.25l-2.390625 0l0 7.34375l-1.328125 0l0 -7.34375z" fill-rule="nonzero"/><path fill="#ff4e42" d="m243.84 177.6l96.0 0l0 38.393692l-96.0 0z" fill-rule="evenodd"/><path fill="#000000" d="m275.72064 192.7231l2.953125 0q0.765625 0 1.40625 0.34375q0.640625 0.328125 1.015625 0.9375q0.390625 0.59375 0.390625 1.34375q0 0.765625 -0.390625 1.359375q-0.375 0.59375 -1.015625 0.9375q-0.640625 0.328125 -1.40625 0.328125l-1.625 0l0 3.34375l-1.328125 0l0 -8.59375zm2.984375 4.015625q0.671875 0 1.0625 -0.40625q0.40625 -0.421875 0.40625 -0.984375q0 -0.546875 -0.40625 -0.953125q-0.390625 -0.421875 -1.0625 -0.421875l-1.65625 0l0 2.765625l1.65625 0zm8.039276 4.765625q-1.234375 0 -2.265625 -0.59375q-1.015625 -0.609375 -1.59375 -1.625q-0.578125 -1.03125 -0.578125 -2.265625q0 -1.234375 0.578125 -2.25q0.578125 -1.03125 1.59375 -1.625q1.03125 -0.609375 2.265625 -0.609375q1.25 0 2.265625 0.609375q1.015625 0.59375 1.59375 1.625q0.59375 1.015625 0.59375 2.25q0 1.234375 -0.59375 2.265625q-0.578125 1.015625 -1.59375 1.625q-1.015625 0.59375 -2.265625 0.59375zm0 -1.25q0.875 0 1.578125 -0.40625q0.71875 -0.421875 1.125 -1.15625q0.421875 -0.734375 0.421875 -1.671875q0 -0.9375 -0.421875 -1.671875q-0.40625 -0.734375 -1.125 -1.140625q-0.703125 -0.421875 -1.578125 -0.421875q-0.859375 0 -1.578125 0.421875q-0.703125 0.40625 -1.125 1.140625q-0.40625 0.734375 -0.40625 1.671875q0 0.9375 0.40625 1.671875q0.421875 0.734375 1.125 1.15625q0.71875 0.40625 1.578125 0.40625zm9.864075 1.25q-1.234375 0 -2.265625 -0.59375q-1.015625 -0.609375 -1.59375 -1.625q-0.578125 -1.03125 -0.578125 -2.265625q0 -1.234375 0.578125 -2.25q0.578125 -1.03125 1.59375 -1.625q1.03125 -0.609375 2.265625 -0.609375q1.25 0 2.265625 0.609375q1.015625 0.59375 1.59375 1.625q0.59375 1.015625 0.59375 2.25q0 1.234375 -0.59375 2.265625q-0.578125 1.015625 -1.59375 1.625q-1.015625 0.59375 -2.265625 0.59375zm0 -1.25q0.875 0 1.578125 -0.40625q0.71875 -0.421875 1.125 -1.15625q0.421875 -0.734375 0.421875 -1.671875q0 -0.9375 -0.421875 -1.671875q-0.40625 -0.734375 -1.125 -1.140625q-0.703125 -0.421875 -1.578125 -0.421875q-0.859375 0 -1.578125 0.421875q-0.703125 0.40625 -1.125 1.140625q-0.40625 0.734375 -0.40625 1.671875q0 0.9375 0.40625 1.671875q0.421875 0.734375 1.125 1.15625q0.71875 0.40625 1.578125 0.40625zm5.968445 -7.53125l3.015625 0q0.78125 0 1.40625 0.34375q0.640625 0.328125 1.0 0.9375q0.359375 0.59375 0.359375 1.34375q0 0.875 -0.5625 1.546875q-0.546875 0.65625 -1.390625 0.875l-0.015625 0.0625l2.375 3.40625l0 0.078125l-1.53125 0l-2.28125 -3.375l-1.046875 0l0 3.375l-1.328125 0l0 -8.59375zm2.984375 4.015625q0.625 0 1.046875 -0.390625q0.421875 -0.40625 0.421875 -1.0q0 -0.5625 -0.390625 -0.96875q-0.390625 -0.421875 -1.03125 -0.421875l-1.703125 0l0 2.78125l1.65625 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m196.8 240.0l95.999985 0l0 28.409454l-95.999985 0z" fill-rule="evenodd"/><path fill="#434343" d="m223.49895 257.87723l-5.15625 0l0 -1.34375l5.015625 -7.40625l1.84375 0l0 7.140625l1.390625 0l0 1.609375l-1.390625 0l0 2.1875l-1.703125 0l0 -2.1875zm0 -1.609375l0 -4.609375l-0.09375 0l-3.125 4.609375l3.21875 0zm5.9627686 3.890625q-0.515625 0 -0.875 -0.34375q-0.34375 -0.359375 -0.34375 -0.859375q0 -0.484375 0.34375 -0.828125q0.359375 -0.359375 0.875 -0.359375q0.515625 0 0.859375 0.34375q0.34375 0.34375 0.34375 0.84375q0 0.5 -0.34375 0.859375q-0.34375 0.34375 -0.859375 0.34375zm7.3638763 0.15625q-1.34375 0 -2.359375 -0.75q-1.015625 -0.75 -1.578125 -2.046875q-0.546875 -1.3125 -0.546875 -2.921875q0 -1.625 0.546875 -2.921875q0.5625 -1.3125 1.578125 -2.0625q1.015625 -0.75 2.359375 -0.75q1.34375 0 2.359375 0.75q1.03125 0.75 1.578125 2.0625q0.5625 1.296875 0.5625 2.921875q0 1.609375 -0.5625 2.921875q-0.546875 1.296875 -1.578125 2.046875q-1.015625 0.75 -2.359375 0.75zm0 -1.625q0.84375 0 1.46875 -0.53125q0.625 -0.546875 0.953125 -1.46875q0.328125 -0.921875 0.328125 -2.09375q0 -1.171875 -0.328125 -2.109375q-0.328125 -0.9375 -0.953125 -1.453125q-0.625 -0.53125 -1.46875 -0.53125q-0.828125 0 -1.453125 0.53125q-0.609375 0.515625 -0.9375 1.453125q-0.328125 0.9375 -0.328125 2.109375q0 1.171875 0.328125 2.09375q0.328125 0.921875 0.9375 1.46875q0.625 0.53125 1.453125 0.53125zm5.294403 1.375l0 0zm7.712387 0.25q-1.390625 0 -2.296875 -0.59375q-0.90625 -0.609375 -1.265625 -1.59375l1.546875 -0.671875q0.28125 0.65625 0.8125 1.0q0.53125 0.34375 1.203125 0.34375q0.6875 0 1.140625 -0.25q0.46875 -0.25 0.46875 -0.734375q0 -0.453125 -0.390625 -0.71875q-0.390625 -0.265625 -1.21875 -0.453125l-0.96875 -0.21875q-0.984375 -0.25 -1.625 -0.859375q-0.640625 -0.609375 -0.640625 -1.53125q0 -0.703125 0.421875 -1.25q0.421875 -0.546875 1.140625 -0.84375q0.71875 -0.296875 1.5625 -0.296875q1.15625 0 2.0 0.453125q0.859375 0.453125 1.25 1.3125l-1.5 0.671875q-0.484375 -0.96875 -1.734375 -0.96875q-0.609375 0 -1.015625 0.25q-0.40625 0.25 -0.40625 0.640625q0 0.71875 1.25 1.03125l1.171875 0.296875q1.203125 0.296875 1.8125 0.90625q0.625 0.609375 0.625 1.515625q0 0.765625 -0.4375 1.34375q-0.4375 0.578125 -1.21875 0.90625q-0.765625 0.3125 -1.6875 0.3125zm8.654007 0q-1.1875 0 -2.140625 -0.546875q-0.95310974 -0.5625 -1.4843597 -1.546875q-0.53125 -0.984375 -0.53125 -2.21875q0 -1.171875 0.515625 -2.171875q0.515625 -1.0 1.4374847 -1.59375q0.9375 -0.59375 2.109375 -0.59375q1.234375 0 2.125 0.546875q0.890625 0.53125 1.359375 1.484375q0.484375 0.9375 0.484375 2.140625q0 0.3125 -0.03125 0.53125l-6.3125 0q0.125 1.171875 0.84375 1.8125q0.71875 0.625 1.671875 0.625q0.78125 0 1.34375 -0.359375q0.5625 -0.359375 0.90625 -0.953125l1.421875 0.6875q-0.5625 1.015625 -1.5 1.59375q-0.921875 0.5625 -2.21875 0.5625zm2.15625 -5.265625q-0.03125 -0.4375 -0.28125 -0.890625q-0.25 -0.453125 -0.75 -0.734375q-0.484375 -0.296875 -1.203125 -0.296875q-0.859375 0 -1.46875 0.53125q-0.59375 0.515625 -0.8125 1.390625l4.515625 0zm7.1706543 5.265625q-1.21875 0 -2.1875 -0.546875q-0.953125 -0.5625 -1.484375 -1.546875q-0.53125 -0.984375 -0.53125 -2.234375q0 -1.25 0.53125 -2.234375q0.53125 -0.984375 1.484375 -1.546875q0.96875 -0.5625 2.1875 -0.5625q1.34375 0 2.28125 0.609375q0.9375 0.59375 1.359375 1.65625l-1.578125 0.640625q-0.578125 -1.3125 -2.09375 -1.3125q-0.671875 0 -1.25 0.34375q-0.5625 0.34375 -0.890625 0.96875q-0.328125 0.625 -0.328125 1.4375q0 0.8125 0.328125 1.4375q0.328125 0.625 0.890625 0.96875q0.578125 0.34375 1.25 0.34375q0.765625 0 1.3125 -0.34375q0.5625 -0.34375 0.859375 -1.0l1.5625 0.671875q-0.484375 1.046875 -1.4375 1.65625q-0.9375 0.59375 -2.265625 0.59375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m91.2 240.39362l96.0 0l0 28.409454l-96.0 0z" fill-rule="evenodd"/><path fill="#434343" d="m114.02157 258.83334q3.25 -3.234375 4.0 -4.078125q0.703125 -0.734375 0.953125 -1.1875q0.265625 -0.46875 0.265625 -1.09375q0 -0.640625 -0.484375 -1.109375q-0.484375 -0.46875 -1.328125 -0.46875q-0.765625 0 -1.234375 0.4375q-0.46875 0.4375 -0.65625 1.03125l-1.546875 -0.640625q0.15625 -0.578125 0.59375 -1.140625q0.453125 -0.5625 1.1875 -0.9375q0.734375 -0.390625 1.6875 -0.390625q1.046875 0 1.84375 0.4375q0.796875 0.421875 1.234375 1.15625q0.453125 0.71875 0.453125 1.578125q0 1.734375 -1.75 3.46875q-0.703125 0.703125 -1.578125 1.59375q-0.90625 0.875 -1.359375 1.359375l0.015625 0.046875l4.796875 0l0 1.5625l-7.09375 0l0 -1.625zm9.984146 1.71875q-0.515625 0 -0.875 -0.34375q-0.34375 -0.359375 -0.34375 -0.859375q0 -0.484375 0.34375 -0.828125q0.359375 -0.359375 0.875 -0.359375q0.515625 0 0.859375 0.34375q0.34375 0.34375 0.34375 0.84375q0 0.5 -0.34375 0.859375q-0.34375 0.34375 -0.859375 0.34375zm6.598259 0.15625q-0.8125 0 -1.59375 -0.328125q-0.78125 -0.328125 -1.3750076 -0.984375q-0.578125 -0.671875 -0.8125 -1.640625l1.5468826 -0.609375q0.234375 0.890625 0.796875 1.421875q0.5625 0.53125 1.421875 0.53125q0.90625 0 1.5 -0.578125q0.609375 -0.59375 0.609375 -1.5q0 -0.921875 -0.59375 -1.515625q-0.578125 -0.59375 -1.5 -0.59375q-0.53125 0 -0.984375 0.234375q-0.453125 0.21875 -0.75 0.625l-1.6875076 -0.75l0.65625 -5.5l5.9062576 0l0 1.5625l-4.484375 0l-0.421875 2.9375l0.09375 0.015625q0.875 -0.6875 2.0 -0.6875q0.9375 0 1.734375 0.46875q0.796875 0.46875 1.265625 1.296875q0.484375 0.828125 0.484375 1.890625q0 1.046875 -0.5 1.90625q-0.484375 0.84375 -1.359375 1.328125q-0.875 0.46875 -1.953125 0.46875zm4.684021 -0.25l0 0zm7.712387 0.25q-1.390625 0 -2.296875 -0.59375q-0.90625 -0.609375 -1.265625 -1.59375l1.546875 -0.671875q0.28125 0.65625 0.8125 1.0q0.53125 0.34375 1.203125 0.34375q0.6875 0 1.140625 -0.25q0.46875 -0.25 0.46875 -0.734375q0 -0.453125 -0.390625 -0.71875q-0.390625 -0.265625 -1.21875 -0.453125l-0.96875 -0.21875q-0.984375 -0.25 -1.625 -0.859375q-0.640625 -0.609375 -0.640625 -1.53125q0 -0.703125 0.421875 -1.25q0.421875 -0.546875 1.140625 -0.84375q0.71875 -0.296875 1.5625 -0.296875q1.15625 0 2.0 0.453125q0.859375 0.453125 1.25 1.3125l-1.5 0.671875q-0.484375 -0.96875 -1.734375 -0.96875q-0.609375 0 -1.015625 0.25q-0.40625 0.25 -0.40625 0.640625q0 0.71875 1.25 1.03125l1.171875 0.296875q1.203125 0.296875 1.8125 0.90625q0.625 0.609375 0.625 1.515625q0 0.765625 -0.4375 1.34375q-0.4375 0.578125 -1.21875 0.90625q-0.765625 0.3125 -1.6875 0.3125zm8.654022 0q-1.1875 0 -2.140625 -0.546875q-0.953125 -0.5625 -1.484375 -1.546875q-0.53125 -0.984375 -0.53125 -2.21875q0 -1.171875 0.515625 -2.171875q0.515625 -1.0 1.4375 -1.59375q0.9375 -0.59375 2.109375 -0.59375q1.234375 0 2.125 0.546875q0.890625 0.53125 1.359375 1.484375q0.484375 0.9375 0.484375 2.140625q0 0.3125 -0.03125 0.53125l-6.3125 0q0.125 1.171875 0.84375 1.8125q0.71875 0.625 1.671875 0.625q0.78125 0 1.34375 -0.359375q0.5625 -0.359375 0.90625 -0.953125l1.421875 0.6875q-0.5625 1.015625 -1.5 1.59375q-0.921875 0.5625 -2.21875 0.5625zm2.15625 -5.265625q-0.03125 -0.4375 -0.28125 -0.890625q-0.25 -0.453125 -0.75 -0.734375q-0.484375 -0.296875 -1.203125 -0.296875q-0.859375 0 -1.46875 0.53125q-0.59375 0.515625 -0.8125 1.390625l4.515625 0zm7.170639 5.265625q-1.21875 0 -2.1875 -0.546875q-0.953125 -0.5625 -1.484375 -1.546875q-0.53125 -0.984375 -0.53125 -2.234375q0 -1.25 0.53125 -2.234375q0.53125 -0.984375 1.484375 -1.546875q0.96875 -0.5625 2.1875 -0.5625q1.34375 0 2.28125 0.609375q0.9375 0.59375 1.359375 1.65625l-1.578125 0.640625q-0.578125 -1.3125 -2.09375 -1.3125q-0.671875 0 -1.25 0.34375q-0.5625 0.34375 -0.890625 0.96875q-0.328125 0.625 -0.328125 1.4375q0 0.8125 0.328125 1.4375q0.328125 0.625 0.890625 0.96875q0.578125 0.34375 1.25 0.34375q0.765625 0 1.3125 -0.34375q0.5625 -0.34375 0.859375 -1.0l1.5625 0.671875q-0.484375 1.046875 -1.4375 1.65625q-0.9375 0.59375 -2.265625 0.59375z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m139.2 241.87541l0 -28.56694" fill-rule="evenodd"/><path stroke="#434343" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m139.2 241.87541l0 -20.986938" fill-rule="evenodd"/><path fill="#434343" stroke="#434343" stroke-width="2.0" stroke-linecap="butt" d="m139.2 214.30849c1.8170166 0 3.2899933 1.4729767 3.2899933 3.2899933c0 1.8170166 -1.4729767 3.2899933 -3.2899933 3.2899933c-1.8170166 0 -3.2899933 -1.4729767 -3.2899933 -3.2899933c0 -1.8170166 1.4729767 -3.2899933 3.2899933 -3.2899933z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m48.00492 115.2l288.0 0l0 28.7874l-288.0 0z" fill-rule="evenodd"/><path fill="#666666" d="m85.778755 122.4812l1.703125 0l0 12.6875l6.265625 0l0 1.625l-7.96875 0l0 -14.3125zm13.101868 14.625q-1.109375 0 -2.0 -0.4375q-0.875 -0.4375 -1.359375 -1.203125q-0.46875 -0.765625 -0.46875 -1.75q0 -1.625 1.21875 -2.53125q1.21875 -0.90625 3.078125 -0.90625q0.921875 0 1.703125 0.203125q0.796875 0.1875 1.21875 0.453125l0 -0.625q0 -1.140625 -0.8125 -1.828125q-0.796875 -0.6875 -2.015625 -0.6875q-0.84375 0 -1.578125 0.375q-0.71875 0.359375 -1.140625 1.03125l-1.28125 -0.96875q0.609375 -0.921875 1.65625 -1.4375q1.0625 -0.515625 2.34375 -0.515625q2.078125 0 3.25 1.09375q1.1875 1.078125 1.1875 2.96875l0 6.453125l-1.609375 0l0 -1.453125l-0.09375 0q-0.4375 0.734375 -1.3125 1.25q-0.875 0.515625 -1.984375 0.515625zm0.171875 -1.5q0.859375 0 1.59375 -0.4375q0.734375 -0.4375 1.171875 -1.171875q0.453125 -0.75 0.453125 -1.625q-0.484375 -0.3125 -1.1875 -0.515625q-0.703125 -0.203125 -1.484375 -0.203125q-1.390625 0 -2.109375 0.578125q-0.703125 0.578125 -0.703125 1.5q0 0.84375 0.640625 1.359375q0.640625 0.515625 1.625 0.515625zm7.19812 -9.015625l1.609375 0l0 1.640625l0.078125 0q0.3125 -0.84375 1.171875 -1.390625q0.859375 -0.546875 1.796875 -0.546875q0.703125 0 1.203125 0.203125l0 1.84375q-0.640625 -0.328125 -1.4375 -0.328125q-0.75 0 -1.375 0.421875q-0.609375 0.421875 -0.984375 1.140625q-0.375 0.703125 -0.375 1.515625l0 5.703125l-1.6875 0l0 -10.203125zm11.46875 14.84375q-1.796875 0 -2.96875 -0.84375q-1.171875 -0.84375 -1.5625 -2.015625l1.5625 -0.65625q0.3125 0.875 1.09375 1.421875q0.796875 0.546875 1.875 0.546875q1.578125 0 2.453125 -0.921875q0.875 -0.90625 0.875 -2.59375l0 -1.140625l-0.078125 0q-0.5 0.78125 -1.421875 1.28125q-0.90625 0.484375 -2.0625 0.484375q-1.3125 0 -2.40625 -0.671875q-1.09375 -0.6875 -1.734375 -1.90625q-0.640625 -1.21875 -0.640625 -2.78125q0 -1.546875 0.640625 -2.765625q0.640625 -1.234375 1.734375 -1.90625q1.09375 -0.6875 2.40625 -0.6875q1.15625 0 2.0625 0.484375q0.921875 0.484375 1.421875 1.296875l0.078125 0l0 -1.46875l1.625 0l0 9.796875q0 2.46875 -1.375 3.75q-1.359375 1.296875 -3.578125 1.296875zm0 -5.984375q0.921875 0 1.671875 -0.453125q0.75 -0.46875 1.203125 -1.328125q0.453125 -0.859375 0.453125 -2.03125q0 -1.203125 -0.453125 -2.0625q-0.453125 -0.859375 -1.203125 -1.3125q-0.75 -0.453125 -1.671875 -0.453125q-0.921875 0 -1.6875 0.46875q-0.75 0.453125 -1.203125 1.3125q-0.4375 0.859375 -0.4375 2.046875q0 1.171875 0.4375 2.046875q0.453125 0.875 1.203125 1.328125q0.765625 0.4375 1.6875 0.4375zm11.902489 1.65625q-1.453125 0 -2.6250076 -0.6875q-1.15625 -0.703125 -1.8125 -1.9375q-0.640625 -1.234375 -0.640625 -2.765625q0 -1.46875 0.609375 -2.71875q0.609375 -1.25 1.734375 -1.984375q1.1406326 -0.734375 2.5937576 -0.734375q1.5 0 2.59375 0.671875q1.109375 0.65625 1.703125 1.84375q0.59375 1.1875 0.59375 2.703125q0 0.234375 -0.046875 0.515625l-8.078133 0q0.0625 1.15625 0.5625 1.96875q0.5 0.796875 1.2656326 1.203125q0.765625 0.390625 1.609375 0.390625q2.0 0 3.015625 -1.84375l1.4375 0.703125q-0.625 1.21875 -1.765625 1.953125q-1.140625 0.71875 -2.75 0.71875zm2.9375 -6.5q-0.03125 -0.625 -0.359375 -1.265625q-0.3125 -0.640625 -1.0 -1.078125q-0.671875 -0.453125 -1.71875 -0.453125q-1.203125 0 -2.0468826 0.78125q-0.828125 0.765625 -1.09375 2.015625l6.2187576 0zm7.4381256 6.5q-1.625 0 -2.734375 -0.765625q-1.09375 -0.765625 -1.5625 -1.96875l1.53125 -0.671875q0.375 0.90625 1.125 1.40625q0.75 0.5 1.640625 0.5q0.96875 0 1.640625 -0.375q0.6875 -0.390625 0.6875 -1.125q0 -0.625 -0.546875 -1.015625q-0.53125 -0.390625 -1.6875 -0.671875l-1.25 -0.328125q-1.21875 -0.296875 -2.0 -1.015625q-0.78125 -0.71875 -0.78125 -1.859375q0 -0.875 0.53125 -1.546875q0.53125 -0.671875 1.40625 -1.03125q0.890625 -0.359375 1.90625 -0.359375q1.34375 0 2.390625 0.578125q1.046875 0.578125 1.484375 1.625l-1.46875 0.671875q-0.6875 -1.359375 -2.421875 -1.359375q-0.84375 0 -1.484375 0.390625q-0.625 0.390625 -0.625 0.984375q0 0.5625 0.4375 0.921875q0.453125 0.34375 1.328125 0.5625l1.484375 0.375q1.5 0.390625 2.25 1.140625q0.765625 0.75 0.765625 1.828125q0 0.9375 -0.546875 1.65625q-0.53125 0.703125 -1.453125 1.078125q-0.921875 0.375 -2.046875 0.375zm9.734985 -0.15625q-0.625 0 -1.15625 -0.1875q-0.53125 -0.203125 -0.890625 -0.546875q-0.796875 -0.765625 -0.796875 -2.109375l0 -5.96875l-1.78125 0l0 -1.546875l1.78125 0l0 -2.875l1.703125 0l0 2.875l2.5 0l0 1.546875l-2.5 0l0 5.5625q0 0.828125 0.3125 1.234375q0.375 0.4375 1.09375 0.4375q0.625 0 1.125 -0.34375l0 1.671875q-0.296875 0.140625 -0.609375 0.1875q-0.3125 0.0625 -0.78125 0.0625zm2.132492 -0.15625l0 0zm12.5525055 0.3125q-2.078125 0 -3.78125 -0.96875q-1.6875 -0.984375 -2.65625 -2.6875q-0.96875 -1.71875 -0.96875 -3.8125q0 -2.109375 0.96875 -3.8125q0.96875 -1.71875 2.65625 -2.6875q1.703125 -0.984375 3.78125 -0.984375q1.609375 0 2.9375 0.609375q1.328125 0.59375 2.3125 1.734375l-1.21875 1.171875q-0.828125 -0.96875 -1.796875 -1.421875q-0.96875 -0.46875 -2.234375 -0.46875q-1.546875 0 -2.859375 0.734375q-1.296875 0.71875 -2.0625 2.046875q-0.765625 1.328125 -0.765625 3.078125q0 1.734375 0.765625 3.0625q0.765625 1.328125 2.0625 2.0625q1.3125 0.734375 2.859375 0.734375q2.609375 0 4.421875 -2.140625l1.25 1.203125q-0.984375 1.171875 -2.453125 1.859375q-1.46875 0.6875 -3.21875 0.6875zm12.060623 0q-1.5 0 -2.703125 -0.71875q-1.1875 -0.71875 -1.859375 -1.953125q-0.671875 -1.234375 -0.671875 -2.734375q0 -1.5 0.671875 -2.734375q0.671875 -1.25 1.859375 -1.96875q1.203125 -0.71875 2.703125 -0.71875q1.5 0 2.703125 0.71875q1.203125 0.71875 1.875 1.96875q0.671875 1.234375 0.671875 2.734375q0 1.5 -0.671875 2.734375q-0.671875 1.234375 -1.875 1.953125q-1.203125 0.71875 -2.703125 0.71875zm0 -1.53125q0.953125 0 1.75 -0.46875q0.8125 -0.46875 1.296875 -1.34375q0.5 -0.890625 0.5 -2.0625q0 -1.1875 -0.5 -2.0625q-0.484375 -0.890625 -1.296875 -1.359375q-0.796875 -0.46875 -1.75 -0.46875q-0.9375 0 -1.765625 0.46875q-0.8125 0.46875 -1.296875 1.359375q-0.484375 0.875 -0.484375 2.0625q0 1.171875 0.484375 2.0625q0.484375 0.875 1.296875 1.34375q0.828125 0.46875 1.765625 0.46875zm7.032486 -8.984375l1.609375 0l0 1.5l0.078125 0q0.421875 -0.75 1.34375 -1.28125q0.921875 -0.53125 1.96875 -0.53125q1.828125 0 2.796875 1.078125q0.984375 1.0625 0.984375 2.890625l0 6.546875l-1.703125 0l0 -6.28125q0 -1.421875 -0.6875 -2.0625q-0.671875 -0.640625 -1.859375 -0.640625q-0.8125 0 -1.46875 0.46875q-0.640625 0.453125 -1.015625 1.203125q-0.359375 0.75 -0.359375 1.578125l0 5.734375l-1.6875 0l0 -10.203125zm14.641861 10.359375q-0.625 0 -1.15625 -0.1875q-0.53125 -0.203125 -0.890625 -0.546875q-0.796875 -0.765625 -0.796875 -2.109375l0 -5.96875l-1.78125 0l0 -1.546875l1.78125 0l0 -2.875l1.703125 0l0 2.875l2.5 0l0 1.546875l-2.5 0l0 5.5625q0 0.828125 0.3125 1.234375q0.375 0.4375 1.09375 0.4375q0.625 0 1.125 -0.34375l0 1.671875q-0.296875 0.140625 -0.609375 0.1875q-0.3125 0.0625 -0.78125 0.0625zm7.4893646 0.15625q-1.453125 0 -2.625 -0.6875q-1.15625 -0.703125 -1.8125 -1.9375q-0.640625 -1.234375 -0.640625 -2.765625q0 -1.46875 0.609375 -2.71875q0.609375 -1.25 1.734375 -1.984375q1.140625 -0.734375 2.59375 -0.734375q1.5 0 2.59375 0.671875q1.109375 0.65625 1.703125 1.84375q0.59375 1.1875 0.59375 2.703125q0 0.234375 -0.046875 0.515625l-8.078125 0q0.0625 1.15625 0.5625 1.96875q0.5 0.796875 1.265625 1.203125q0.765625 0.390625 1.609375 0.390625q2.0 0 3.015625 -1.84375l1.4375 0.703125q-0.625 1.21875 -1.765625 1.953125q-1.140625 0.71875 -2.75 0.71875zm2.9375 -6.5q-0.03125 -0.625 -0.359375 -1.265625q-0.3125 -0.640625 -1.0 -1.078125q-0.671875 -0.453125 -1.71875 -0.453125q-1.203125 0 -2.046875 0.78125q-0.828125 0.765625 -1.09375 2.015625l6.21875 0zm3.7912445 -4.015625l1.609375 0l0 1.5l0.078125 0q0.421875 -0.75 1.34375 -1.28125q0.921875 -0.53125 1.96875 -0.53125q1.828125 0 2.796875 1.078125q0.984375 1.0625 0.984375 2.890625l0 6.546875l-1.703125 0l0 -6.28125q0 -1.421875 -0.6875 -2.0625q-0.671875 -0.640625 -1.859375 -0.640625q-0.8125 0 -1.46875 0.46875q-0.640625 0.453125 -1.015625 1.203125q-0.359375 0.75 -0.359375 1.578125l0 5.734375l-1.6875 0l0 -10.203125zm14.641861 10.359375q-0.625 0 -1.15625 -0.1875q-0.53125 -0.203125 -0.890625 -0.546875q-0.796875 -0.765625 -0.796875 -2.109375l0 -5.96875l-1.78125 0l0 -1.546875l1.78125 0l0 -2.875l1.703125 0l0 2.875l4.640625 0l0 -1.09375q0 -0.96875 0.421875 -1.6875q0.4375 -0.71875 1.1875 -1.109375q0.75 -0.390625 1.640625 -0.390625q0.828125 0 1.5 0.25l0 1.65625q-0.390625 -0.15625 -0.703125 -0.234375q-0.3125 -0.09375 -0.75 -0.09375q-0.671875 0 -1.15625 0.484375q-0.46875 0.46875 -0.46875 1.296875l0 0.921875l2.625 0l0 1.546875l-2.625 0l0 8.65625l-1.671875 0l0 -8.65625l-4.640625 0l0 5.5625q0 0.828125 0.3125 1.234375q0.375 0.4375 1.09375 0.4375q0.625 0 1.125 -0.34375l0 1.671875q-0.296875 0.140625 -0.609375 0.1875q-0.3125 0.0625 -0.78125 0.0625zm13.38562 0.15625q-1.828125 0 -2.796875 -1.078125q-0.96875 -1.078125 -0.96875 -3.015625l0 -6.421875l1.6875 0l0 6.15625q0 1.46875 0.65625 2.15625q0.671875 0.671875 1.78125 0.671875q0.875 0 1.53125 -0.453125q0.671875 -0.46875 1.046875 -1.203125q0.375 -0.75 0.375 -1.5625l0 -5.765625l1.6875 0l0 10.203125l-1.609375 0l0 -1.484375l-0.078125 0q-0.421875 0.765625 -1.34375 1.28125q-0.921875 0.515625 -1.96875 0.515625zm7.532486 -14.625l1.6875 0l0 14.3125l-1.6875 0l0 -14.3125zm2.9543762 14.3125l0 0zm6.233734 -14.3125l4.828125 0q1.203125 0 2.21875 0.546875q1.015625 0.53125 1.625 1.5q0.609375 0.96875 0.609375 2.1875q0 1.21875 -0.609375 2.1875q-0.609375 0.96875 -1.625 1.515625q-1.015625 0.53125 -2.21875 0.53125l-3.125 0l0 5.84375l-1.703125 0l0 -14.3125zm4.859375 6.859375q0.8125 0 1.421875 -0.375q0.609375 -0.390625 0.9375 -0.984375q0.34375 -0.609375 0.34375 -1.265625q0 -0.65625 -0.34375 -1.25q-0.328125 -0.609375 -0.9375 -0.984375q-0.609375 -0.390625 -1.421875 -0.390625l-3.15625 0l0 5.25l3.15625 0zm9.182495 7.765625q-1.109375 0 -2.0 -0.4375q-0.875 -0.4375 -1.359375 -1.203125q-0.46875 -0.765625 -0.46875 -1.75q0 -1.625 1.21875 -2.53125q1.21875 -0.90625 3.078125 -0.90625q0.921875 0 1.703125 0.203125q0.796875 0.1875 1.21875 0.453125l0 -0.625q0 -1.140625 -0.8125 -1.828125q-0.796875 -0.6875 -2.015625 -0.6875q-0.84375 0 -1.578125 0.375q-0.71875 0.359375 -1.140625 1.03125l-1.28125 -0.96875q0.609375 -0.921875 1.65625 -1.4375q1.0625 -0.515625 2.34375 -0.515625q2.078125 0 3.25 1.09375q1.1875 1.078125 1.1875 2.96875l0 6.453125l-1.609375 0l0 -1.453125l-0.09375 0q-0.4375 0.734375 -1.3125 1.25q-0.875 0.515625 -1.984375 0.515625zm0.171875 -1.5q0.859375 0 1.59375 -0.4375q0.734375 -0.4375 1.171875 -1.171875q0.453125 -0.75 0.453125 -1.625q-0.484375 -0.3125 -1.1875 -0.515625q-0.703125 -0.203125 -1.484375 -0.203125q-1.390625 0 -2.109375 0.578125q-0.703125 0.578125 -0.703125 1.5q0 0.84375 0.640625 1.359375q0.640625 0.515625 1.625 0.515625zm8.19812 -10.890625q-0.5 0 -0.859375 -0.359375q-0.359375 -0.359375 -0.359375 -0.859375q0 -0.515625 0.359375 -0.859375q0.359375 -0.359375 0.859375 -0.359375q0.515625 0 0.859375 0.359375q0.359375 0.34375 0.359375 0.859375q0 0.5 -0.359375 0.859375q-0.34375 0.359375 -0.859375 0.359375zm-0.84375 1.875l1.703125 0l0 10.203125l-1.703125 0l0 -10.203125zm4.363739 0l1.609375 0l0 1.5l0.078125 0q0.421875 -0.75 1.34375 -1.28125q0.921875 -0.53125 1.96875 -0.53125q1.828125 0 2.796875 1.078125q0.984375 1.0625 0.984375 2.890625l0 6.546875l-1.703125 0l0 -6.28125q0 -1.421875 -0.6875 -2.0625q-0.671875 -0.640625 -1.859375 -0.640625q-0.8125 0 -1.46875 0.46875q-0.640625 0.453125 -1.015625 1.203125q-0.359375 0.75 -0.359375 1.578125l0 5.734375l-1.6875 0l0 -10.203125zm14.641876 10.359375q-0.625 0 -1.15625 -0.1875q-0.53125 -0.203125 -0.890625 -0.546875q-0.796875 -0.765625 -0.796875 -2.109375l0 -5.96875l-1.78125 0l0 -1.546875l1.78125 0l0 -2.875l1.703125 0l0 2.875l2.5 0l0 1.546875l-2.5 0l0 5.5625q0 0.828125 0.3125 1.234375q0.375 0.4375 1.09375 0.4375q0.625 0 1.125 -0.34375l0 1.671875q-0.296875 0.140625 -0.609375 0.1875q-0.3125 0.0625 -0.78125 0.0625z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m244.8 241.37184l0 -28.283463" fill-rule="evenodd"/><path stroke="#434343" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m244.79999 241.37184l0 -20.703476" fill-rule="evenodd"/><path fill="#434343" stroke="#434343" stroke-width="2.0" stroke-linecap="butt" d="m244.79999 214.08838c1.8170166 0 3.2900085 1.4729767 3.2900085 3.2899933c0 1.8170166 -1.472992 3.2900085 -3.2900085 3.2900085c-1.8170166 0 -3.2899933 -1.472992 -3.2899933 -3.2900085c0 -1.8170166 1.4729767 -3.2899933 3.2899933 -3.2899933z" fill-rule="nonzero"/></g></svg>

উভয় পৃষ্ঠাই একটি script.js রিসোর্স লোড করে, যেটি ডিফল্টভাবে Glitch দ্বারা তৈরি করা হয় তাই সেই ফাইলের বিষয়বস্তুকে নিম্নলিখিতগুলির সাথে প্রতিস্থাপন করুন:

function blockPause(milliseconds) {
  const start = performance.now();
  let lastCheck = start;
  let lastTime = 0;
  // Synchronous blocking is NOT best practice at all, but is what we want here
  // Don't do this on your real site please!
  while(performance.now() - start < milliseconds) {
    // Log once a second
    lastTime = performance.now() - lastCheck
    if (lastTime >= 1000) {
      console.log(`Still blocking ${Math.round(performance.now() - start, 0)} ms out of ${milliseconds} ms`);
      lastCheck = performance.now();
    }
  }
}

// Load web-vitals.js and log LCP updates to console
var script = document.createElement('script');
script.src = 'https://unpkg.com/web-vitals@4/dist/web-vitals.attribution.iife.js';
script.onload = function () {
  window.webVitals.onLCP(({value}) => {
    console.log(`LCP time: ${Math.round(value)} ms`);
  }, {reportAllChanges: true});
};
document.head.appendChild(script);

// Block page for 3 seconds to simulate a slow loading page
console.log('Simulate slow loading page by blocking page;');
blockPause(3000);
console.log('Page loaded');

এর সাথে, আপনার ডেমো সাইট সেট আপ করা উচিত। এটির জন্য একটি অনুভূতি পেতে চারপাশে ক্লিক করুন. আপনার লক্ষ্য করা উচিত যে মূল থ্রেডের কৃত্রিম ব্লকিংয়ের কারণে পৃষ্ঠা 2 এবং 3 ধীর গতিতে লোড হচ্ছে।

DevTools কনসোল খোলা থাকলে, আপনি script.js থেকে কনসোল লগগুলি দেখতে পাবেন:

DevTools খোলা সহ ডেমো সাইট থেকে পৃষ্ঠা 2-এর স্ক্রিনশট কিছু ব্লকিং বার্তা দেখাচ্ছে এবং তারপর 3,658 মিলিসেকেন্ডের একটি LCP

আপনি ব্লকিং, ডিবাগ মেসেজ দেখতে পারেন, এবং এছাড়াও এই পেজটির LCP প্রদর্শন করতে 3,658 মিলিসেকেন্ড সময় লেগেছে আমাদের ডামি ব্লকিং ফাংশন দ্বারা মূল থ্রেড ব্লক করার জন্য ধন্যবাদ। ডামি ব্লকিং ফাংশনের জন্য এটি একটি ধীর পৃষ্ঠা, তবে এটি এমন একটি পৃষ্ঠাকে উপস্থাপন করে যা যেকোনো কারণেই ধীরে ধীরে লোড হয়। স্পেকুলেশন রুলস এপিআই ব্যবহার করে কীভাবে গতি বাড়ানো যায় তা দেখা যাক।

4. URL তালিকা অনুমান নিয়ম যোগ করুন

আপনি যে প্রথম অনুমানের নিয়মটি যোগ করবেন তা হল ইউআরএলগুলির হার্ডকোড করা তালিকা প্রি-রেন্ডার করা।

Glitch-এ নামের উপরে ঘোরার সময় প্রদর্শিত তিনটি ডট মেনুতে ক্লিক করে index.html ডকুমেন্টের নকল করুন:

গ্লিচে ডুপ্লিকেট ফাইল বিকল্প

page1-url-speculations.html এর একটি নতুন নাম লিখুন।

স্পেকুলেশন রুলস হল একটি JSON ফরম্যাট করা <script> ট্যাগ এর সাথে type="speculationrules"

page1-url-speculations.html ফাইলটি সম্পাদনা করুন এবং পৃষ্ঠায় নিম্নলিখিত কোড যোগ করুন। এটা আসলে কোন ব্যাপার না কিন্তু ক্লোজিং বডি ট্যাগের ঠিক আগে ( </body> ) পৃষ্ঠার বাকি বেশিরভাগ অংশকে প্রথমে প্রক্রিয়া করার অনুমতি দেওয়া ভাল।

<script type="speculationrules">
  {
    "prerender": [
      {
        "urls": ["page2.html", "page3.html"]
      }
    ]
  }
</script>

এবং এটাই! আপনার পৃষ্ঠায় তাত্ক্ষণিক লোডিং যোগ করার জন্য এটিই প্রয়োজন!

এই নিয়মটি urls page2.html এবং page3.html প্রি-রেন্ডার করতে বলে যাতে উভয় পৃষ্ঠাই ব্যাকগ্রাউন্ডে লোড হয়, ব্যবহারকারী যখন কোনও লিঙ্কে ক্লিক করেন তখন তার জন্য প্রস্তুত।

5. কর্মে ফটকা বিধি দেখা

এর কর্ম এটি দেখতে. আপনি যদি page1-url-speculations.html পৃষ্ঠাটি লোড করেন, তাহলে কিছুই মূল index.html পৃষ্ঠা থেকে আলাদা বলে মনে হবে না। পটভূমিতে, তবে, Chrome page2.html এবং page3.html প্রি-রেন্ডারিং শুরু করেছে। আপনি এগুলোকে লুকানো ব্যাকগ্রাউন্ড ট্যাব হিসেবে ভাবতে পারেন। একবার আপনি লিঙ্কটিতে ক্লিক করলে, Chrome বর্তমান পৃষ্ঠাটিকে সেই পূর্ব-প্রস্তুত পৃষ্ঠার সাথে অদলবদল করবে। আপনি যদি লোড হওয়ার পরে কমপক্ষে 3 সেকেন্ড পর্যন্ত অপেক্ষা করেন এবং লিঙ্কগুলিতে ক্লিক করেন তবে আপনার লক্ষ্য করা উচিত যে সেগুলি শূন্যের কাছাকাছি এলসিপির সাথে সাথে সাথে লোড হচ্ছে!

50 মিলিসেকেন্ডের একটি LCP সহ তাত্ক্ষণিক লোডিং৷

এখানে আপনি 50 মিলিসেকেন্ডের একটি LCP দেখতে পাচ্ছেন - 2.5 সেকেন্ডের প্রস্তাবিত "ভাল" থ্রেশহোল্ডের চেয়ে অনেক দ্রুত এবং "তাত্ক্ষণিক" হিসাবে বিবেচিত হবে তবে বেশিরভাগ লোক৷

index.html এর প্রধান হোম পেজের সাথে এটি তুলনা করুন যেখানে পৃষ্ঠাগুলির মধ্যে নেভিগেট করা ধীর এবং প্রতিক্রিয়াহীন বোধ করে।

এটি শুধুমাত্র একটি সাধারণ ডেমো সাইট, এবং ধীর লোডিং কৃত্রিম। আশা করি যদিও, আপনি ইতিমধ্যে API এর শক্তি দেখতে এবং বুঝতে পারেন। আপনাকে মূল পৃষ্ঠার কোড পরিবর্তন করতে হবে না, আপনাকে কেবল পৃষ্ঠায় অনুমানের নিয়ম যোগ করতে হবে।

আপনি যদি সম্পূর্ণ 3 সেকেন্ড লোডিং সময় শেষ হওয়ার আগে ক্লিক করেন, আংশিকভাবে লোড হওয়া পৃষ্ঠাটি বর্তমান পৃষ্ঠাটিকে প্রতিস্থাপন করবে এবং আপনি কনসোলে অবশিষ্ট ব্লকিং বার্তাগুলি দেখতে পাবেন:

আগের মতই পৃষ্ঠা 2-এর অনুরূপ স্ক্রিনশট কিন্তু মাত্র অর্ধেক কনসোল লগিং সহ

ক্রোম ব্যবহারকারীর সামনে লোডিং শেষ করে এবং এখানে আপনি একটি 1 সেকেন্ডের এলসিপি দেখতে পাচ্ছেন — সম্পূর্ণ প্রি-রেন্ডার করা সহ 50 মিলিসেকেন্ডের কাছাকাছি-তাত্ক্ষণিক অনুভূতির মতো নয়, তবে প্রি-রেন্ডার করা হয়নি এমন একটি পৃষ্ঠা লোডের জন্য 3 সেকেন্ডের চেয়েও ভাল সব মাথার শুরু এখনও লক্ষণীয়ভাবে পৃষ্ঠা লোড উন্নত.

6. জাভাস্ক্রিপ্ট দিয়ে ডিবাগিং

আপনি জাভাস্ক্রিপ্ট ব্যবহার করে একটি ইভেন্ট হ্যান্ডলার নিবন্ধন করতে পারেন যখন পৃষ্ঠাটি সক্রিয় হয়।

// Block page for 3 seconds to simulate a slow loading page ঠিক আগে, script.js ফাইলে নিম্নলিখিত কোডটি যোগ করুন:

// Load when the page is activated
document.addEventListener('prerenderingchange', () => {
  console.log(`The page has been activated!`);
  
  const activationStart = Math.round(performance.getEntriesByType('navigation')[0].activationStart);
  console.log(`The page was activated at: ${activationStart}`);
});

আপনি যদি page1-url-speculations.html পৃষ্ঠায় ফিরে যান, পৃষ্ঠাটি প্রি-রেন্ডার হওয়ার জন্য কয়েক সেকেন্ড অপেক্ষা করুন এবং তারপরে একটি লিঙ্কে ক্লিক করুন, আপনি নিম্নলিখিত স্ক্রিনশটের মতো কিছু দেখতে পাবেন:

DevTools কনসোল পৃষ্ঠাটি সক্রিয় করা হলে লগিং বার্তাগুলি দেখায়৷

এখানে আপনি দেখতে পাচ্ছেন যে পৃষ্ঠাটি লোড হওয়া শুরু হওয়ার পরে পৃষ্ঠাটি 4,298 মিলিসেকেন্ডে সক্রিয় হয়েছে। পেজ লোডের শুরুটা ভালো ছিল ৪ সেকেন্ডের মাথায়!

আপনি লগের ক্রম অনুসারে দেখতে পারেন যে অ্যাক্টিভেশন ইভেন্টটি প্রথমে ফায়ার হয়, LCP ট্রিগার হওয়ার আগে। যদিও পৃষ্ঠাটি ততক্ষণে সম্পূর্ণরূপে লোড হয়ে যেত, LCP-এর জন্য একটি "পেইন্ট" প্রয়োজন—এটি নামে! তাই যদিও পৃষ্ঠাটি পটভূমিতে প্রি-রেন্ডার করা হয়েছে, পৃষ্ঠাটি সক্রিয় না হওয়া পর্যন্ত কোনও প্রকৃত "পেইন্ট" ঘটবে না। তাই সক্রিয়করণ এবং LCP সময়ের মধ্যে একটি ছোট বিলম্ব হবে। এই ক্ষেত্রে 128 মিলিসেকেন্ড। যা ব্যবহারকারী উদ্বিগ্ন হিসাবে অনেক তাত্ক্ষণিক!

আপনি আরও দেখতে পারেন যে এই উদাহরণে সক্রিয়করণের সময় 4,298 মিলিসেকেন্ড, কিন্তু LCP সময় 128 মিলিসেকেন্ডের চেয়ে অনেক কম। কর্মক্ষমতা মেট্রিক্সের জন্য সমস্ত সময়ের পরিমাপ পৃষ্ঠাটি কখন লোড হতে শুরু করে তার উপর ভিত্তি করে, কিন্তু LCP রেকর্ড করার জন্য যে ওয়েব-ভাইটাল লাইব্রেরি ব্যবহার করা হচ্ছে তাতে বিশেষ যুক্তি রয়েছে যাতে ব্যবহারকারীর জন্য LCP পরিমাপ করার জন্য activationStart সময় বিয়োগ করা হয়। ক্রোম ইউজার এক্সপেরিয়েন্স রিপোর্ট (CrUX) এর জন্য LCP-কেও এভাবে গণনা করা হয় , যা Google Search Console-এ PageSpeed ​​Insights এবং Core Web Vitals রিপোর্টের মতো টুলগুলিকে শক্তি দেয়৷

7. DevTools দিয়ে ডিবাগিং

কনসোল লগিং অবশ্যই ডিবাগ করার একটি উপায় (যারা ডিবাগ করার জন্য একটি ভাল পুরানো console.log পছন্দ করেন না!), তবে স্পেকুলেশন রুলস ডিবাগ করার জন্য DevTools-এ Chrome-এর চমৎকার সমর্থন রয়েছে।

page1-url-speculations.html পৃষ্ঠাতে ফিরে যান, এবং অ্যাপ্লিকেশন প্যানেলটি খুলুন এবং পটভূমি পরিষেবা বিভাগের অধীনে অনুমানমূলক লোড ট্যাবে নেভিগেট করুন:

DevTools Speculative লোডিং ট্যাব

এই স্ক্রিনটি দেখায় যে পৃষ্ঠাটি নিজেই অনুমান করা হয়নি (ডানদিকে শীর্ষ বিভাগ), তবে এটি দুটি অনুমান শুরু করেছেসমস্ত অনুমান নিয়ম দেখুন লিঙ্কে ক্লিক করুন, যা আপনাকে নিয়মগুলির তালিকা সহ একটি স্ক্রীন দেখাবে (এই পৃষ্ঠায় শুধুমাত্র একটি আছে)। আরও আকর্ষণীয়, যদিও, দেখুন সমস্ত অনুমান লিঙ্ক, যা আপনাকে স্পেকুলেশন ট্যাবে নিয়ে যায়:

DevTools স্পেকুলেশন ট্যাবে দুটি পৃষ্ঠা দেখানো হয়েছে অনুমান করা হয়েছে

এখানে আপনি দেখতে পাচ্ছেন যে দুটি পৃষ্ঠা অনুমান করা হয়েছে, এবং উভয়ই প্রস্তুত , যার মানে তারা পূর্বে রেন্ডার করা এবং সক্রিয় করার জন্য প্রস্তুত৷ এর মানে এই নয় যে পৃষ্ঠাটি সম্পূর্ণরূপে লোড করা শেষ হয়েছে—যেমন আপনি আগে দেখেছেন—কিন্তু প্রি-রেন্ডার সফলভাবে শুরু হয়েছে এবং পৃষ্ঠাটি সক্রিয় করার জন্য প্রস্তুত৷

যদি কোনো পৃষ্ঠা প্রি-রেন্ডার করতে ব্যর্থ হয়, তাহলে অনুমান কেন ব্যর্থ হয়েছে সে সম্পর্কে আরও বিশদ বিবরণ দেখতে আপনি সেই লাইনটিতে ক্লিক করতে পারেন উদাহরণস্বরূপ, অল্প সংখ্যক জাভাস্ক্রিপ্ট এপিআই প্রি-রেন্ডারিংয়ের সাথে বেমানান, যা প্রি-রেন্ডারের প্রচেষ্টা বাতিল করবে।

8. নথি নিয়মের সাথে স্বয়ংক্রিয় লিঙ্ক অনুমান

এই অনুমানগুলিতে, ইউআরএলগুলির একটি হার্ড-কোডেড তালিকা ব্যবহার করা হয়েছিল। এটি এমন কিছু পরিস্থিতিতে উপযোগী যেখানে অনুমান করার URL(গুলি) আগে থেকেই পরিচিত। অথবা আরও উন্নত ক্ষেত্রে যেখানে ইউআরএলগুলি গণনা করা যেতে পারে এবং জাভাস্ক্রিপ্ট দ্বারা গতিশীলভাবে পৃষ্ঠায় সন্নিবেশ করা যেতে পারে।

যাইহোক, এটি সাধারণ যে পৃষ্ঠার কোন লিঙ্কে (যদি থাকে!) ভিজিটর ক্লিক করবে তা অজানা বা ভবিষ্যদ্বাণী করা কঠিন। সমস্ত লিঙ্কগুলিকে আগে থেকে প্রিরেন্ডার করা প্রতিটি পৃষ্ঠায় উল্লেখ করা উভয়ই ক্লান্তিকর হবে এবং খুব অপচয় হবে৷ সুতরাং আপনি যা চান তা হল পৃষ্ঠার নির্দিষ্ট লিঙ্কগুলির জন্য বিবেচনা করা, তবে আরও নির্দিষ্ট ইঙ্গিত দিয়ে যে ব্যবহারকারী একটি লিঙ্কে ক্লিক করতে চলেছেন। নথির নিয়ম এটির জন্য অনুমতি দেয়।

index.html ফাইলটিকে আবার একটি page1-document-speculations.html ফাইলে ডুপ্লিকেট করুন, এবং এইবার, নিম্নলিখিত নিয়মটি যোগ করুন—আবার </body> ক্লোজিং ট্যাগের ঠিক আগে যদি একটি ভাল জায়গা থাকে।

<script type="speculationrules">
{
  "prerender": [{
    "where": {
      "and": [
        { "href_matches": "/*" },
        { "not": {"selector_matches": ".do-not-prerender"}}
      ]
    },
    "eagerness": "moderate"
  }]
}
</script>

এটি যা বলে, তা হল সমস্ত একই-অরিজিন লিঙ্কগুলিকে প্রি-রেন্ডার করা ( /* দিয়ে শুরু হয়)—যদি <a> এলিমেন্টে do-not-prerender একটি শ্রেণী থাকে। এই উদাহরণে, পৃষ্ঠাগুলি moderate (যা আমরা পরবর্তী পৃষ্ঠায় কভার করব) সঙ্গে প্রি-রেন্ডার করা হয়।

আপনি যখন পৃষ্ঠায় নেভিগেট করবেন তখন আপনি দুটি সম্ভাব্য অনুমান দেখতে পাবেন এবং যে দুটিই ট্রিগার হয়নি :

DevTools স্পেকুলেশন ট্যাব ট্রিগার হয়নি এমন দুটি পৃষ্ঠা দেখাচ্ছে

লিঙ্কগুলির একটির উপরে হভার করা জল্পনাকে ট্রিগার করে:

DevTools স্পেকুলেশন ট্যাব ট্রিগার করা দুটি পৃষ্ঠা দেখাচ্ছে

একবার আপনি লিঙ্কে ক্লিক করলে, প্রি-রেন্ডার করা পৃষ্ঠাটি লোড হবে। পৃষ্ঠাটি লোড করার জন্য পর্যাপ্ত সময় দেওয়া হলে এটি তাত্ক্ষণিক অনুভূত হতে পারে, অথবা লিঙ্কটি ক্লিক করার সময় পৃষ্ঠা লোড সম্পূর্ণ না হলে কিছুটা দ্রুত। যেভাবেই হোক, অনুমানের নিয়ম ব্যবহার না করার চেয়ে এটি একটি ভাল LCP সময় নিয়ে যাবে।

কোন ইউআরএলগুলিকে প্রি-রেন্ডার করতে হবে তা সাবধানে বিবেচনা না করেই ডকুমেন্টের নিয়মগুলি আপনার ওয়েবসাইটে দ্রুত অনুমানমূলক নেভিগেশন যোগ করার একটি শক্তিশালী উপায়। তারা প্রি-রেন্ডার সম্পূর্ণ করার জন্য কম সময় দেয়, কিন্তু তারপরও পরবর্তী নেভিগেশনের জন্য একটি প্রধান সূচনা প্রদান করে এবং এইভাবে ভবিষ্যতের পৃষ্ঠা লোড উন্নত করতে সহায়তা করে।

9. কখন অনুমান করতে হবে তা নির্দেশ করার জন্য ব্যবহারকারীর আগ্রহ

পূর্ববর্তী ধাপে "eagerness": "moderate" ব্যবহার করা হয়েছিল। 4টি আগ্রহ সেটিংস আছে:

  • immediate : এটি যত তাড়াতাড়ি সম্ভব অনুমান করতে ব্যবহৃত হয়-অর্থাৎ, যত তাড়াতাড়ি অনুমান করার নিয়মগুলি পরিলক্ষিত হয়।
  • eager : এটি immediate সেটিংসের সাথে অভিন্ন আচরণ করে, কিন্তু ভবিষ্যতে, আমরা এটিকে immediate এবং moderate মধ্যে কোথাও স্থাপন করতে চাইছি।
  • moderate : এটি অনুমান করে যদি আপনি 200 মিলিসেকেন্ডের জন্য একটি লিঙ্কের উপর হোভার করেন (অথবা pointerdown ইভেন্টে যদি এটি তাড়াতাড়ি হয়, এবং মোবাইলে যেখানে কোনও হোভার ইভেন্ট নেই)।
  • conservative : এটি পয়েন্টার বা টাচ ডাউনের উপর অনুমান করে।

ইউআরএল-ভিত্তিক তালিকা নিয়ম বা where -ভিত্তিক নথির নিয়ম উভয়ের জন্য eagerness সেটিং ব্যবহার করা যেতে পারে। immediate এবং eager সেটিংস সাধারণত নিয়মগুলি তালিকাভুক্ত করার জন্য নিজেদেরকে আরও বেশি ধার দেয় যেহেতু আপনি URLগুলি জানেন এবং সেইজন্য সর্বাধিক লিড টাইম পেতে যত তাড়াতাড়ি সম্ভব সেগুলি অনুমান করতে পারে। moderate এবং conservative সাধারণত ডকুমেন্টের নিয়মগুলির জন্য বেশি উপযোগী যেখানে অনুমান করার জন্য সঠিক URL সাধারণত জানা যায় না।

অনুমানগুলি কখন ঘটে তা দেখতে DevTools ব্যবহার করে আপনার পৃষ্ঠাগুলিতে বিভিন্ন আগ্রহের সেটিংস নিয়ে পরীক্ষা করুন৷

10. উপসংহার

অভিনন্দন, আপনি এই কোডল্যাবের শেষে পৌঁছেছেন এবং এখন বুঝতে হবে যে স্পেকুলেশন রুলস API হল একটি শক্তিশালী API যা কোডের কয়েকটি লাইন সহ সাইটগুলিতে যোগ করা যেতে পারে।

আপনি এই সংক্ষিপ্ত ভূমিকায় শুধুমাত্র এই API-এর সম্ভাবনার উপরিভাগ স্ক্র্যাচ করেছেন, কিন্তু এটি আপনার ওয়েবসাইটে সমর্থন যোগ করার জন্য যথেষ্ট।

আরও উন্নত বিষয়ের জন্য, বিবেচ্য বিষয়গুলি সহ আপনাকে বিশ্লেষণ বা বিজ্ঞাপনগুলির জন্য বিবেচনা করতে হবে, নীচের আরও জানুন লিঙ্কগুলি দেখুন৷

আরও জানুন

প্রতিক্রিয়া

আমরা এই কোডল্যাব সম্পর্কে প্রতিক্রিয়া শুনতে চাই এবং যদি আপনার কোন প্রশ্ন বা উদ্বেগ থাকে।

কিভাবে আপনি এই কোডল্যাব খুঁজে পাবেন?

আমার জন্য যে দরকারী না পরিমিতভাবে দরকারী সত্যিই দরকারী