{"id":148486,"date":"2018-10-20T15:09:45","date_gmt":"2018-10-20T15:09:45","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=148486"},"modified":"2024-04-17T06:54:23","modified_gmt":"2024-04-17T06:54:23","slug":"intersection-observer-in-javascript","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/","title":{"rendered":"Intersection Observer in Javascript"},"content":{"rendered":"\n<p>Today we will discuss about the <strong>Intersection Observer api<\/strong> in Javascript with example. So starting from why do we need&nbsp;<strong>Intersection Observer api<\/strong> in Javascript?<\/p>\n\n\n\n<p>where do we will apply it ? and most importantly what is&nbsp;<strong>Intersection Observer api ?<\/strong><\/p>\n\n\n\n<p>lets understand one by one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is&nbsp;Intersection Observer api ?<\/h3>\n\n\n\n<p>Intersection Observer asynchronously observe changes in the target element with the top-level document&#8217;s&nbsp;<a class=\"glossaryLink\" title=\"viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you're viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view.\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/viewport\">viewport<\/a>.<\/p>\n\n\n\n<p>We will have a target element each time which will be observed.\u00a0Whenever the target meets a threshold specified for the\u00a0<code>IntersectionObserver<\/code>, the callback is invoked. The callback receives a list of\u00a0\u00a0objects and the observer. We will have a complete example for the above definition<\/p>\n\n\n\n<p>There are other questions remaining as mentioned above lets explore them as well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why do we need&nbsp;<strong>Intersection Observer api<\/strong> in Javascript?<\/h2>\n\n\n\n<p>As we all know about lazy loading concept, for further details about lazy loading look at this tutorial from <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/lazy-loading-guidance\/images-and-video\/\">developer google<\/a>&nbsp;.<\/p>\n\n\n\n<p>The basic concept of lazy loading is to reduce as much as HTTP Request from server. Each image request treat as a HTTP request so if a page consist of 50 image approx then it consist of atleast 5o HTTP request which makes slow load time of site. and less interaction of user on site.<\/p>\n\n\n\n<p>So lazy loading can be implemented on such cases where only such viewport images will be loaded on page while other images will be loaded on scroll by end user.<\/p>\n\n\n\n<p>lazy loading concept can be implemented in various ways by developers using javascript and of core implementation using&nbsp; &nbsp;<strong>Intersection Observer api.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem Faced While Own lazy loading concept using calculation via javascript &#8211;<\/h2>\n\n\n\n<p>Few Drawbacks are mentioned below &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This can cause performance issues as the calculations will be run on the main thread.<\/li>\n\n\n\n<li>The calculation is performed each time there is a scroll on the page which is bad if the image is well below the view port<\/li>\n\n\n\n<li>if there are a huge number of images in the page,&nbsp;then calculation&nbsp; made on image can be very costly.<\/li>\n<\/ul>\n\n\n\n<p id=\"81c1\">Lazy loading using&nbsp;<strong><em class=\"markup--em markup--p-em\">Intersection Observer<\/em><\/strong>&nbsp;follows the following steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a new intersection observer<\/li>\n\n\n\n<li>Watch the element we want to lazy load for visibility changes<\/li>\n\n\n\n<li>When the element is in viewport, load the element<\/li>\n\n\n\n<li>Once the element is loaded, stop watching it for visibility changes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">where do we will apply it ?<\/h2>\n\n\n\n<p>We can apply&nbsp;<strong>Intersection Observer api <\/strong>in lazy loading concept for example.<\/p>\n\n\n\n<p>lets take a look at an example below<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;html&gt;\n  &lt;head&gt;\n\n    &lt;style&gt;\n    \n    .boxy {\n      overflow-y: scroll;\n      background: #f1f1f1;\n    }\n    .woo-image {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      background-color: #f8f8f8;\n      color: #333;\n      height: 250px;\n      margin-bottom: 250px\n    }\n    .active {\n      background-color: #999;\n    }\n    \n    &lt;\/style&gt;\n\n  &lt;\/head&gt;\n  &lt;body&gt;\n\n      &lt;div class=&quot;boxy&quot; id=&quot;wooBox&quot;&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n          &lt;div class=&quot;woo-image&quot;&gt;\n            &lt;h2&gt;woo image&lt;\/h2&gt;\n          &lt;\/div&gt;\n        &lt;\/div&gt;\n     &lt;script&gt;\n\n    window.addEventListener(&#039;load&#039;,function(){\n       \n        const options = {\n          rootMargin: &quot;25px&quot;,\n          threshold: 1.0\n        };\n        const io = new IntersectionObserver(entries =&gt; {\n          entries.forEach(entry =&gt; {\n            console.log(&#039;entry: &#039;, entry);\n            if (entry.intersectionRatio &gt; 0.9) {\n              entry.target.classList.add(&#039;active&#039;);\n              entry.target.innerHTML = &#039;&lt;h2&gt;Woo!&lt;\/h2&gt;&#039;;\n              io.unobserve(entry.target);\n            }\n          });\n        }, options);\n\n        const targetElements = document.querySelectorAll(&quot;.woo-image&quot;);\n        for (let element of targetElements) {\n          \/\/ console.log(&#039;element: &#039;, element);\n          io.observe(element);\n        }\n\n      });\n    &lt;\/script&gt;\n\n  &lt;\/body&gt;\n\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>This is just a basic example you can apply the concept on projects easily.<\/p>\n\n\n\n<p>Happy coding just every bit details of syntax here <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Intersection_Observer_API\">Developer MDN<\/a>.<\/p>\n\n\n\n<p>Do let me know your thoughts and i will writing the same code on react and other Observers like mutation observer and Performance Observer In coming series with details<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we will discuss about the Intersection Observer api in Javascript with example. So starting from why do we need&nbsp;Intersection Observer api in Javascript? where do we will apply it ? and most importantly what is&nbsp;Intersection Observer api ? lets understand one by one. What is&nbsp;Intersection Observer api ? Intersection Observer asynchronously observe changes in <a href=\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":67,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[198],"tags":[7695,7694],"class_list":["post-148486","post","type-post","status-publish","format-standard","hentry","category-javascript","tag-intersection-observer-in-javascript","tag-observer-in-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Intersection Observer in Javascript - Webkul Blog<\/title>\n<meta name=\"description\" content=\"Intersection Observer asynchronously observe changes in the target element with the top-level document&#039;s\u00a0viewport.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Intersection Observer in Javascript - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Intersection Observer asynchronously observe changes in the target element with the top-level document&#039;s\u00a0viewport.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-20T15:09:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-17T06:54:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Webkul\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Webkul\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\"},\"author\":{\"name\":\"Webkul\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/14f2bcf2d2b044589b35c23a46036b02\"},\"headline\":\"Intersection Observer in Javascript\",\"datePublished\":\"2018-10-20T15:09:45+00:00\",\"dateModified\":\"2024-04-17T06:54:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\"},\"wordCount\":476,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"keywords\":[\"Intersection observer in javascript\",\"Observer in javascript\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\",\"url\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\",\"name\":\"Intersection Observer in Javascript - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"datePublished\":\"2018-10-20T15:09:45+00:00\",\"dateModified\":\"2024-04-17T06:54:23+00:00\",\"description\":\"Intersection Observer asynchronously observe changes in the target element with the top-level document's\u00a0viewport.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Intersection Observer in Javascript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/14f2bcf2d2b044589b35c23a46036b02\",\"name\":\"Webkul\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b95a9889faa1ac8c620c762d0101c3a62e439d100e083ee7257caad54fa5305a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b95a9889faa1ac8c620c762d0101c3a62e439d100e083ee7257caad54fa5305a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Webkul\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/amit098\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Intersection Observer in Javascript - Webkul Blog","description":"Intersection Observer asynchronously observe changes in the target element with the top-level document's\u00a0viewport.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/","og_locale":"en_US","og_type":"article","og_title":"Intersection Observer in Javascript - Webkul Blog","og_description":"Intersection Observer asynchronously observe changes in the target element with the top-level document's\u00a0viewport.","og_url":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2018-10-20T15:09:45+00:00","article_modified_time":"2024-04-17T06:54:23+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png","type":"image\/png"}],"author":"Webkul","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Webkul","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/"},"author":{"name":"Webkul","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/14f2bcf2d2b044589b35c23a46036b02"},"headline":"Intersection Observer in Javascript","datePublished":"2018-10-20T15:09:45+00:00","dateModified":"2024-04-17T06:54:23+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/"},"wordCount":476,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"keywords":["Intersection observer in javascript","Observer in javascript"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/","url":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/","name":"Intersection Observer in Javascript - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"datePublished":"2018-10-20T15:09:45+00:00","dateModified":"2024-04-17T06:54:23+00:00","description":"Intersection Observer asynchronously observe changes in the target element with the top-level document's\u00a0viewport.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/intersection-observer-in-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Intersection Observer in Javascript"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/14f2bcf2d2b044589b35c23a46036b02","name":"Webkul","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b95a9889faa1ac8c620c762d0101c3a62e439d100e083ee7257caad54fa5305a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b95a9889faa1ac8c620c762d0101c3a62e439d100e083ee7257caad54fa5305a?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Webkul"},"url":"https:\/\/webkul.com\/blog\/author\/amit098\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/148486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=148486"}],"version-history":[{"count":7,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/148486\/revisions"}],"predecessor-version":[{"id":434418,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/148486\/revisions\/434418"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=148486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=148486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=148486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}