{"id":22100,"date":"2014-07-01T10:20:52","date_gmt":"2014-07-01T08:20:52","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=22100"},"modified":"2014-07-01T10:20:52","modified_gmt":"2014-07-01T08:20:52","slug":"spf-a-javascript-framework-for-navigation-and-page-updates","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/","title":{"rendered":"SPF &#8211; a JavaScript framework for navigation and page updates"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/youtube\/spfjs\">SPF<\/a> &#8211; a JavaScript framework for navigation and page updates. \u00a0Developed at YouTube.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>SPF &#8211; a JavaScript framework for navigation and page updates. \u00a0Developed at YouTube.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[1139,1184,246,1057,1330,1322],"keyring_services":[],"class_list":["post-22100","post","type-post","status-publish","format-link","hentry","category-general","category-programming","category-technology","category-web-work","tag-javascript","tag-navigation","tag-optimization","tag-performance","tag-web-development","tag-youtube","post_format-post-format-link"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-07-01T08:20:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-07-01T08:20:52+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#blogposting\",\"name\":\"SPF \\u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov\",\"headline\":\"SPF &#8211; a JavaScript framework for navigation and page updates\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2014-07-01T10:20:52+02:00\",\"dateModified\":\"2014-07-01T10:20:52+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, JavaScript, navigation, optimization, performance, web development, YouTube, Link\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#listItem\",\"name\":\"SPF &#8211; a JavaScript framework for navigation and page updates\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#listItem\",\"position\":4,\"name\":\"SPF &#8211; a JavaScript framework for navigation and page updates\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/\",\"name\":\"SPF \\u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov\",\"description\":\"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/01\\\/spf-a-javascript-framework-for-navigation-and-page-updates\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2014-07-01T10:20:52+02:00\",\"dateModified\":\"2014-07-01T10:20:52+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov","description":"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#blogposting","name":"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov","headline":"SPF &#8211; a JavaScript framework for navigation and page updates","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2014-07-01T10:20:52+02:00","dateModified":"2014-07-01T10:20:52+02:00","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#webpage"},"articleSection":"All, Programming, Technology, Web work, JavaScript, navigation, optimization, performance, web development, YouTube, Link"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#listItem","name":"SPF &#8211; a JavaScript framework for navigation and page updates"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#listItem","position":4,"name":"SPF &#8211; a JavaScript framework for navigation and page updates","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/","name":"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov","description":"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2014-07-01T10:20:52+02:00","dateModified":"2014-07-01T10:20:52+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov","og:description":"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.","og:url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2014-07-01T08:20:52+00:00","article:modified_time":"2014-07-01T08:20:52+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"SPF \u2013 a JavaScript framework for navigation and page updates - Leonid Mamchenkov","twitter:description":"SPF - a JavaScript framework for navigation and page updates. Developed at YouTube.","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"22100","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 12:36:04","updated":"2026-01-15 10:32:45","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSPF \u2013 a JavaScript framework for navigation and page updates\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"SPF &#8211; a JavaScript framework for navigation and page updates","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/01\/spf-a-javascript-framework-for-navigation-and-page-updates\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":22440,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/28\/meteor-an-ultra-simple-database-everywhere-data-on-the-wire-pure-javascript-web-framework\/","url_meta":{"origin":22100,"position":0},"title":"Meteor &#8211; an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","author":"Leonid Mamchenkov","date":"August 28, 2014","format":"link","excerpt":"Meteor - an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27638,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/choosing-a-future-javascript-framework-for-wordpress\/","url_meta":{"origin":22100,"position":1},"title":"Choosing a future JavaScript framework for WordPress","author":"Leonid Mamchenkov","date":"May 28, 2017","format":false,"excerpt":"WordPress in general, and Matt Mullenweg in particular have been pushing for JavaScript for a while now. https:\/\/www.youtube.com\/watch?v=KrZx4IY1IgU So, it's not surprising that WordPress developers are chatting about the JavaScript framework that they'll use for the WordPress core JavaScript needs. The discussion is far from finalized right now, so it's\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/KrZx4IY1IgU\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":20210,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/03\/list-of-minimalist-web-frameworks\/","url_meta":{"origin":22100,"position":2},"title":"List of minimalist web frameworks","author":"Leonid Mamchenkov","date":"February 3, 2014","format":"link","excerpt":"List of minimalist web frameworks Framework for CSS Web Framework for C Frameworks for Front-end JS Web framework for Go Web framework for Haskell Web framework for Java Web framework for Javascript Web framework for Lua Web framework for Node.js Web framework for Perl Web framework for PHP Web framework\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28487,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/18\/the-deepest-reason-why-modern-javascript-frameworks-exist\/","url_meta":{"origin":22100,"position":3},"title":"The deepest reason why modern JavaScript frameworks exist","author":"Leonid Mamchenkov","date":"April 18, 2018","format":false,"excerpt":"\"The deepest reason why modern JavaScript frameworks exist\" is a nice article looking at the crazy world of JavaScript frameworks and exploring why things are how they are.\u00a0 The conclusions from the article are: The main problem modern JavaScript frameworks solve is keeping the UI in sync with the state.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/04\/javascript-frameworks-reason-500x500.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28415,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/27\/vue-js%e2%80%8a-%e2%80%8aanswering-the-why-after-15-months\/","url_meta":{"origin":22100,"position":4},"title":"Vue.js\u200a\u2014\u200aanswering the Why, after 15 months","author":"Leonid Mamchenkov","date":"February 27, 2018","format":false,"excerpt":"Harshal Patil shares his positive experience with the Vue.js JavaScript framework, after using it for just over a year in \"Vue.js\u200a\u2014\u200aanswering the Why, after 15 months\".\u00a0 As many before him, he focuses on the virtual DOM, optional but powerful build system, state management, single file components, performance, testability, and a\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":21839,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/20\/rob-ashton-you-have-ruined-javascript\/","url_meta":{"origin":22100,"position":5},"title":"Rob Ashton : you have ruined JavaScript","author":"Leonid Mamchenkov","date":"May 20, 2014","format":"link","excerpt":"Rob Ashton : you have ruined JavaScript Rob talks about \"enterprise\"-level-like frameworks in JavaScript and the complexity of abstractions in some of them. For example, quoting AngularJS framework documentation like this: An Angular \"service\" is a singleton object created by a \"service factory\". These service factories are functions which, in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=22100"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22100\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=22100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=22100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=22100"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=22100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}