CINXE.COM

China Website Speed Test

<!DOCTYPE html> <html> <head> <title>China Website Speed Test</title> <meta content="Test the speed of a web page from 18 servers all around the world including Beijing, Shanghai & Guangzhou." name="description" lift-id="meta-desc"> <meta content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, minimal-ui" name="viewport"> <script lift-id="ga2"> var _gaId = 'G-TBTKCHCMN9'; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); </script> <script src="/js/header.business_page.essentials.min.js?F149016519225RJETVZ=_"></script> <script defer="true" src="/js/header.business_page.min.js?F149016519225RJETVZ=_"></script> <link onload="this.onload=null;this.rel='stylesheet'" as="style" type="text/css" rel="preload" href="/css/ModularPage.output.min.css?F149016519225RJETVZ=_"> <noscript><link rel="stylesheet" href="/css/ModularPage.output.min.css?F149016519225RJETVZ=_"></noscript> <link href="/api2/business/page/css/0/170/en/1731492623000/tools/global-speed-test" rel="stylesheet" type="text/css" lift-id="css"> <script lift-id="script-data">ns('Page'); Page.params = {magazineUserId: 170,lang: 'en',url: 'tools/global-speed-test',magazineUsername: 'chinafywebsite',langUrls: {"en":"/en/tools/global-speed-test"}}; Page.json = {animations: {"Scaleup":{"type":"timed","animationList":[{"target":{"className":"ScrollToScaleUpImage"},"styles":{"0":{"scale":"0.7,0.7"}},"easing":{"0":{}}},{"target":{"className":"ScrollToScaleUpImage"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"ScrollToScaleUpImage"},"styles":{"0":{"opacity":0.9}},"easing":{"0":{}}},{"target":{"className":"ScrollToScaleUpImage"},"styles":{"100":{"opacity":1}},"easing":{"100":{}}}],"name":"Scale up "},"Scaleincardimage1":{"type":"timed","name":"Scale in card image 1","animationList":[{"target":{"className":"_Image1"},"styles":{"0":{"scale":"0,0"}},"easing":{"0":{}}},{"target":{"className":"_Image1"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay1"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay1"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"Scaleoutcardimage1":{"type":"timed","name":"Scale out card image 1","animationList":[{"target":{"className":"_Image1"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_Image1"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay1"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay1"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"Scaleincard2":{"type":"timed","name":"Scale in card 2","animationList":[{"target":{"className":"_Image2"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay2"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image2"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay2"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"Scaleoutcard2":{"type":"timed","name":"Scale out card 2","animationList":[{"target":{"className":"_Image2"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay2"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image2"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay2"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"Scaleoutcard3":{"type":"timed","name":"Scale in card 3","animationList":[{"target":{"className":"_Image3"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_Image3"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay3"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay3"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"Scaleincard4":{"type":"timed","name":"Scale in card 4","animationList":[{"target":{"className":"_Image4"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay4"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image4"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay4"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleincard5":{"type":"timed","name":"scale in card 5","animationList":[{"target":{"className":"_Image5"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay5"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image5"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay5"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"Scaleincard6":{"type":"timed","name":"Scale in card 6","animationList":[{"target":{"className":"_Image6"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay6"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image6"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay6"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"Scaleincard7":{"type":"timed","name":"Scale in card 7","animationList":[{"target":{"className":"_Image7"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_Image7"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay7"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay7"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleincard8":{"type":"timed","name":"scale in card 8","animationList":[{"target":{"className":"_Image8"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_Image8"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay8"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay8"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleincard9":{"type":"timed","animationList":[{"target":{"className":"_Image9"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay9"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image9"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay9"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}],"name":"scale in card 9"},"scaleincard10":{"type":"timed","name":"scale in card 10","animationList":[{"target":{"className":"_Image10"},"styles":{"0":{}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay10"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image10"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay10"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleoutcard3":{"type":"timed","name":"scale out card 3","animationList":[{"target":{"className":"_Image3"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay3"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image3"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay3"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard4":{"type":"timed","name":"scale out card 4","animationList":[{"target":{"className":"_Image4"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay4"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image4"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay4"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"Scaleoutcard5":{"type":"timed","name":"Scale out card 5","animationList":[{"target":{"className":"_Image5"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay5"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image5"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay5"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard6":{"type":"timed","name":"scale out card 6","animationList":[{"target":{"className":"_Image6"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay6"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image6"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay6"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard7":{"type":"timed","name":"scale out card 7","animationList":[{"target":{"className":"_Image7"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay7"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay7"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"_Image7"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}}]},"scaleoutcard8":{"type":"timed","name":"scale out card 8","animationList":[{"target":{"className":"_Image8"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay8"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image8"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay8"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard9":{"type":"timed","name":"scale out card 9","animationList":[{"target":{"className":"_Image9"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay9"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image9"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay9"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard10":{"type":"timed","name":"scale out card 10","animationList":[{"target":{"className":"_Image10"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay10"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image10"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay10"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleincard11":{"type":"timed","name":"scale in card 11","animationList":[{"target":{"className":"_Image11"},"styles":{"0":{"scale":"1,1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay11"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image11"},"styles":{"100":{"scale":"1.1,1.1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay11"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleincard12":{"type":"timed","name":"scale in card 12","animationList":[{"target":{"className":"_Image12"},"styles":{"0":{"scale":"1,1"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay12"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_Image12"},"styles":{"100":{"scale":"1.2,1.2"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay12"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"scaleoutcard11":{"type":"timed","name":"scale out card 11","animationList":[{"target":{"className":"_Image11"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay11"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image11"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay11"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"scaleoutcard12":{"type":"timed","name":"scale out card 12","animationList":[{"target":{"className":"_Image12"},"styles":{"0":{"scale":"1.2,1.2"}},"easing":{"0":{}}},{"target":{"className":"_ImageOverlay12"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"_Image12"},"styles":{"100":{"scale":"1,1"}},"easing":{"100":{}}},{"target":{"className":"_ImageOverlay12"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"ShowAPICallsContent":{"type":"timed","name":"Show API Calls Content","animationList":[{"target":{"className":"InlineScriptsImage"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"InlineScriptsImage"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"APICallsImage"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"APICallsImage"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"_APICallsText"},"styles":{"0":{"opacity":"0.4"}},"easing":{"0":{}}},{"target":{"className":"_APICallsText"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"_InlineScriptsText"},"styles":{"100":{"opacity":".3"}},"easing":{"100":{}}}]},"ShowInlineScriptscontent":{"type":"timed","name":"Show Inline Scripts content","animationList":[{"target":{"className":"_InlineScriptsText"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_InlineScriptsText"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"_APICallsText"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"_APICallsText"},"styles":{"100":{"opacity":"0.4"}},"easing":{"100":{}}},{"target":{"className":"APICallsImage"},"styles":{"0":{"opacity":"1"}},"easing":{"0":{}}},{"target":{"className":"APICallsImage"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"InlineScriptsImage"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{},"styles":{"0":{}},"easing":{"0":{}}}]},"ShowPAYG":{"type":"timed","name":"Show PAYG","animationList":[{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"scale":",100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"height":"100%"}},"easing":{"100":{}}},{"target":{"className":"Plan_PAYG__Open"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"Plan_PAYG__Close"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"HidePAYG":{"type":"timed","name":"Hide PAYG","animationList":[{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"scale":",0px"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--PAYG"},"styles":{"100":{"height":"0px"}},"easing":{"100":{}}},{"target":{"className":"Plan_PAYG__Close"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"Plan_PAYG__Open"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"ShowEssential":{"type":"timed","name":"Show Essential","animationList":[{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"scale":",100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"height":"100%"}},"easing":{"100":{}}},{"target":{"className":"Plan_Essential__Close"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"Plan_Essential__Open"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"HideEssential":{"type":"timed","name":"Hide Essential","animationList":[{"target":{"className":"Plan_Essential__Close"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"Plan_Essential__Open"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"scale":",0%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Essential"},"styles":{"100":{"height":"0px"}},"easing":{"100":{}}}]},"ShowProfessional":{"type":"timed","name":"Show Professional","animationList":[{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"scale":",100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"height":"100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"Plan_Professional__Close"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"Plan_Professional__Open"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}}]},"HideProfessional":{"type":"timed","name":"Hide Professional","animationList":[{"target":{"className":"Plan_Professional__Close"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"Plan_Professional__Open"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"scale":",0px"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Professional"},"styles":{"100":{"height":"0px"}},"easing":{"100":{}}}]},"ShowEnterprise":{"type":"timed","name":"Show Enterprise","animationList":[{"target":{"className":"Plan_Enterprise__Open"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{"height":"100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{"scale":",100%"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{}},"easing":{"100":{}}},{"target":{"className":"Plan_Enterprise__Close"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"HideEnterprise":{"type":"timed","name":"Hide Enterprise","animationList":[{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{"height":"0px"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"PlanDetailsContainer--Enterprise"},"styles":{"100":{"scale":",0%"}},"easing":{"100":{}}},{"target":{"className":"Plan_Enterprise__Close"},"styles":{"100":{"opacity":"0"}},"easing":{"100":{}}},{"target":{"className":"Plan_Enterprise__Open"},"styles":{"100":{"opacity":"1"}},"easing":{"100":{}}}]},"orbitrotate":{"type":"timed","name":"orbit rotate","animationList":[{"target":{"className":"AvatorOrbit"},"styles":{"0":{"rotate":",,0deg"}},"easing":{"0":{}}},{"target":{"className":"AvatorOrbit"},"styles":{"100":{"rotate":",,5deg"}},"easing":{"100":{}}}]},"slideAnim":{"type":"scroll","animationList":[{"target":{"className":"AffiliatePartnerImage"},"styles":{"0":{"move":"30px"}},"easing":{"0":{}}},{"target":{"className":"AffiliatePartnerImage"},"styles":{"100":{"move":"0px"}},"easing":{"100":{}}},{"target":{"className":"AffiliatePartnerImage"},"styles":{"0":{"opacity":"0"}},"easing":{"0":{}}},{"target":{"className":"AffiliatePartnerImage"},"styles":{"100":{"opacity":1}},"easing":{"100":{}}}],"name":"imageAnim"}}, interactions: {}, symbolInteractions: {"184":{},"190":{},"192":{},"193":{},"194":{}}} </script> <script lift-id="ga3"> if(Page.params.magazineUserId==94){ // scmp survey live // do not run gtag }else{ window.gtag&&gtag('config', _gaId); } </script> <script src="https://www.googletagmanager.com/gtag/js?id=G-TBTKCHCMN9" async="" lift-id="ga1"></script> <script type="text/javascript"> apply(Page, { isRedirect: false }); $().ready(function(){ var pageContentId = Page.params.cmsItem&&Page.params.cmsItem.id||Page.CMSData&&Page.CMSData.item&&Page.CMSData.item.id; var pageContent = Page.params.cmsItem; var cfg = { magazineUserId: Page.params.magazineUserId, magazineUsername: Page.params.magazineUsername, lang: Page.params.lang, url: Page.params.url, business: Page.params.business, langUrls: Page.params.langUrls, pageContent: pageContent, pageContentId: pageContentId, // TODO json: Page.json, // only for preview page - live page data handled by web server CMSData: Page.CMSData, }; window.addEventListener('DOMContentLoaded', function() { Page.contentParser = new Notey.ModularPage.ContentParser(cfg); }); }); </script> <meta content="en" http-equiv="content-language"> <script src="https://d1trayza1698cg.cloudfront.net/static2/chinafy/polyfill.min.js" type="application/javascript" async="true"></script> <script src="https://d1trayza1698cg.cloudfront.net/static2/chinafy/fetch.umd.js" type="application/javascript" async="true"></script> <script src="https://files.chinafy.com/.shared/js/polyfill.dataset.js" type="application/javascript" async="true"></script> <link href="https://files.chinaasaservice.com" rel="preconnect"> <link href="https://www.googletagmanager.com" rel="preconnect"> <link href="https://su.ultrasite.com" rel="preconnect"> <link href="https://sites.chinafy.com" rel="preconnect"> <link href="https://js.drift.com" rel="preconnect"> <link href="https://bootstrap.api.drift.com" rel="preconnect"> <link href="https://embeds.driftcdn.com" rel="preconnect"> <link href="https://event.api.drift.com" rel="preconnect"> <link href="https://d1trayza1698cg.cloudfront.net" rel="preconnect"> <link href="https://www.googleanalytics.com" rel="preconnect"> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5ZT9GRZ');</script> <script src="https://cdn.weglot.com/weglot.min.js" type="text/javascript"></script> <script> Weglot.initialize({ api_key: 'wg_96d02023899edf8241708306daf745e59' }); </script> <meta content="8Zwr6VLmSKPqQczfQaimK7dWe7qek053Rhuikph6MVo" name="google-site-verification"> <script> (function(){ var mxpid = window.mxpid = getURLParameterByName('mxpid'); if(window.sessionStorage){ if(mxpid){ sessionStorage.setItem('mxpid',mxpid); }else{ mxpid=sessionStorage.getItem('mxpid'); } } window.user_agency = getCookie("user_agency")||undefined; window.email_agency = getCookie("email_agency")||undefined; })(); </script> <script> window.domainFiltered = function(site){ var raw = "WyJ4dmlkZW9zIiwicG9ybmh1YiIsInhoYW1zdGVyIiwieG54eCIsInlvdXBvcm4iLCJoY2xpcHMiLCJwb3JuIiwidG5hZmxpeCIsInR1YmU4Iiwic3BhbmtiYW5nIiwiZHJ0dWJlciIsInZwb3JuIiwic3Bhbmt3aXJlIiwia2Vlem1vdmllcyIsIm51dmlkIiwic3VucG9ybm8iLCJwb3JuaGQiLCJwb3JuMzAwIiwic2V4dmlkLnh4eCIsInpicG9ybiIsInh4eGJ1bmtlciIsImJvYnMtdHViZSIsInhiYWJlIiwicG9ybmRyb2lkcyIsImFsb2hhdHViZSIsInR1YmV2LnNleCIsInJlZHBvcm4ueHh4IiwiaGRtb3Z6IiwicG9ybnJveCIsInBvcm5tYWtpIiwicG9ybmlkLnh4eCIsImZhcHN0ZXIueHh4IiwiaW54cG9ybiIsInNsdXRsb2FkIiwicHJvcG9ybiIsInBvcm5ob3N0IiwiaGFuZGpvYmh1YiIsImJlZnVjayIsInZwb3JudmlkZW9zIiwiZGFuc21vdmllcyIsImZhcGR1IiwicG9ybjcueHh4IiwiY2FtaHViLmNjIiwicnVkZSIsIjI0cG9ybiIsImZyZXVkYm94IiwicG9ybmhlZWQiLCJvcmdhc20iLCJwb3JucmFiYml0IiwibWFkdGh1bWJzIiwiZnV4IiwiZXJveGlhIiwiaGRwb3JudmlkZW8ueHh4IiwieHh2aWRzLm5ldCIsImgycG9ybiIsInRvcGZyZWVwb3JudmlkZW9zIiwibWV0YXBvcm4iLCJwb3JueGlvIiwibnUtYmF5IiwicG9ybmVyYnJvcyIsInlvdWppenoiLCJpcG9ybnR2Lm5ldCIsInBvcm5wbGFubmVyIiwibXlwb3JuYmlibGUiLCJiYWRqb2pvIiwiZmluZHR1YmVzIiwibGFzbWVqb3Jlc3dlYnNwb3JubyIsInBvcm5tZCIsIm51ZGV2aXN0YSIsInZpZGVvLnNlYXJjaC55YWhvbyIsImFkdWx0dmlkZW9maW5kZXIiLCJhd2VqbXAiLCJpbWxpdmUiLCJhd2VqbXAiLCJhd2VqbXAiLCJjYW1zIiwibHVja3ljcnVzaC5saXZlIiwiY2Ftc29kYSIsImplcmttYXRlIiwic2x1dHJvdWxldHRlIiwid2F0Y2hteWV4Z2YubmV0IiwiZmFudGFzdGkuY2MiLCJ3YXRjaG15Z2YubWUiLCJ3YXRjaC1teS1nZiIsIndhdGNoLW15LWdmLm1lIiwiaWtub3d0aGF0Z2lybCIsImRhcmVkb3JtIiwiY3Jhenljb2xsZWdlZ2ZzIiwicHVuaXNodHViZSIsImJhYmVzcmF0ZXIiLCJzdHVmZmVyZGIiLCJwb3JucGljcyIsImpwZWd3b3JsZCIsInh4eHBvcm5vem9uZSIsIjg4Z2FscyIsImFwaW5hLmJpeiIsImFyYWJpYW5jaGlja3MiLCJiZHNtc3RyZWFrIiwicHVuaXNoYmFuZyIsImNsaXBzNHNhbGUiLCJ6emNhcnRvb24iLCJoZW50YWloYXZlbi5vcmciLCJoZW50YWljb3JlLm9yZyIsImhlbnRhaWdhc20iLCJmYWtrdS5uZXQiLCJnZWxib29ydSIsImhlbnRhaXB1bHNlIiwicG9yY29yZSIsImNhcnRvb25wb3Juby54eHgiLCJjaGFuLnNhbmtha3Vjb21wbGV4IiwiaGVudGFpLWZvdW5kcnkiLCJwb3Jub3ZhLm9yZyIsImVnZ3Bvcm5jb21pY3MiLCJ2cnBvcm4iLCJzZXhsaWtlcmVhbCIsInZyc21hc2giLCJiYWRvaW5rdnIiLCJ3YW5renZyIiwiY3plY2h2ciIsInZyY29zcGxheXgiLCJ2cmNvbmsiLCJqb2luLnZpcnR1YWx0YWJvbyIsIm15cG9ybmdheSIsImdheWZ1cm9yIiwienpnYXlzIiwiZW4uZ2F5LWxvdW5nZS5uZXQiLCJqdXN0dXNib3lzIiwiaXB0b3JyZW50cyIsInJhcmJnIiwicHVzc3l0b3JyZW50cy5vcmciLCJwaW50ZXJlc3QiLCJwaW50ZXJlc3QiLCJwaW50ZXJlc3QiLCJwaW50ZXJlc3QiLCJwb3JuIiwiZnJlZW9uZXMiLCJiZXN0cG9ybnN0YXJkYiIsImJhYmVwZWRpYSIsImtpbmRnaXJscyIsImViYXVtc3dvcmxkIiwic3Rhc3lxIiwidGhlY2hpdmUiLCJwbGF5aW5kaWFuc2V4IiwicGxheWluZGlhbnBvcm4iLCJ2aWV3ZGVzaXNleCIsImhvdHNvdXRoaW5kaWFuc2V4Iiwid2F0Y2hpbmRpYW5wb3JuLm5ldCIsInhwYWphLm5ldCIsImxlc2JpYW44IiwiZ2lybHN3YXkiLCJzaGVtYWxlaGQuc2V4IiwiYW55c2hlbWFsZSIsImJlc3R0cmFubnlwb3Juc2l0ZXMiLCJudXRha3UubmV0IiwiNjlnYW1lcy54eHgiLCJnYW1jb3JlIiwiYXNzaXN0LmxpZmVzZWxlY3RvciIsImhvb2xpZ2FwcHMiLCJsYW5kaW5nLmJyYXp6ZXJzbmV0d29yayIsIndjdC5saW5rIiwibGFuZGluZzEucmsiLCJkaWdpdGFscGxheWdyb3VuZCIsIm1vZm9zbmV0d29yayIsImdmcmV2ZW5nZSIsImxhbmRpbmcudHdpc3R5c25ldHdvcmsiLCJqb2luLnRlYW1za2VldCIsImJhbmdicm9zbmV0d29yayIsIml5YWxjIiwiam9pbi5kZGZuZXR3b3JrIiwidHJhY2suYnJhaW5jYXNoIiwidmlkZW9zeiIsInNlY3VyZS5odXN0bGVyIiwiam9pbi5qYXBhbmhkdiIsImVudGVyLmphdmhkIiwiam9pbi5uZXdzZW5zYXRpb25zIiwiam9pbi5wb3JucHJvc25ldHdvcmsiLCJqb2luLnBlcmZlY3Rnb256byIsImpvaW4uYWxsamFwYW5lc2VwYXNzIiwic2lnbnVwLjE4dmlkZW96IiwibnViaWxlcy5uZXQiLCJzaWdudXAua2lua3lmYW1pbHkiLCJqb2luLmJhYmVyb3RpY2EiLCJqb2luLmFsbG9mZ2ZzIiwiZmlsZiIsImRvcmNlbGNsdWIiLCJiZXN0LXBheXBvcm5zaXRlcyIsImxvY2FsaHVzc2llcyIsImFkdWx0ZnJpZW5kZmluZGVyIiwiZ2V0aXRvbiIsIm9ubGluZWZyZWVjaGF0IiwicGVyZXpoaWx0b24iLCJ0aGVob2xseXdvb2Rnb3NzaXAiLCJqdXN0amFyZWQiLCJob2xseXdvb2RsaWZlIiwibmFrZWRuZXdzIiwiYXZuIiwibWF4aW0iLCJwbGF5Ym95IiwibWVuc2hlYWx0aCIsImZvcnVtLnhueHgiLCJmb3J1bW9waGlsaWEiLCJqZGZvcnVtLm5ldCIsImpvZGljLWZvcnVtLm9yZyIsImpveWxvdmVkb2xscyIsInNleHlyZWFsc2V4ZG9sbHMiLCJzaWxpY29ud2l2ZXMiLCJ5b3VyZG9sbCIsImFzZXhkb2xsIiwiZG9sbHdpdmVzIiwic2V4ZG9sbGdlbmllIiwiZmFuc2RvbGxzIiwic2V4ZG9sbHMtdXNhIiwib3Zkb2xsIiwic2V4ZG9sbGZldGlzaC5zdG9yZSIsInNleHlzZXhkb2xsIiwib2tzZXhkb2xsIiwic2V4ZG9sbG1hcnRzIiwibWVkaWFkZXRlY3RpdmUiLCJwb3JuIiwicHVzc3kiLCJtYW55aGl0LmNvbSIsImNyZW53Lm5ldCIsInRlbmRlcnNnby5jb20iLCJtYW55aGl0LmNvbSIsImlyZ3lwcy5jb20iLCJoaWRkZW5jYW0uIiwiaGlkZGVuY2FtIiwidmFwZXNwcmluZy5jb20iLCJzcGVlZGZsb3cuaW8iLCJ0cmFmZmRhcS5jb20iLCJ0ZW5kZXJzZ2xvYmFsLmNvbSIsImJpdC5seSIsImJpdC5kbyIsInRpbnl1cmwuY29tIiwicm90YXRlNHUuZXUiLCJ0cmFmZmljMTg5LmNvbSIsIm1hbnloaXQuY29tIiwiaHJlZi5saSIsInRyY2thcHAuY29tIiwiLmR5bmRuc3MubmV0IiwiaG9vcC5waG90byIsIi5nZXR3aW5rYXBwLmNvbSIsImJlc3RzcGVjaWFsaXN0ZG9jdG9yLmNvbSIsIndlYmNhbSIsImR5bmRuc3MubmV0IiwiZ2V0d2lua2FwcC5jb20iLCJoNWNrLmNvbSIsInNob3J0dXJsLmF0IiwiYmVzdHNwZWNpYWxpc3Rkb2N0b3IuY29tIiwiY3Vib2lkaWNsZS53b3JkcHJlc3MuY29tIiwid2Vhdi54eXoiLCJ4bWFsYXkuY29tIiwicG9ybmZkLmNvbSIsIjA1cWsuY29tIiwibWF0dXJlbnVlLm5ldCIsInJyczEueHl6IiwidHViZXYucHJvIiwic2VxaW5neC5jb20iLCJjbG91ZGlnaXJsLmNvbSIsImNoaW5lc2VtaXguY29tIiwiaG9vcC5waG90byIsInR3aXRjaC50diIsInd3dy5zaWZ0ZGVzay5vcmciXQ=="; var flist = JSON.parse(atob(raw)); var flist2 = [/.*\.ru$/g]; return site&&(flist.filter(function(f){return site.indexOf(f)>=0}).length>0||flist2.filter(function(f){return site.match(f)}).length>0); }; </script> <style>li .ModularPage_Component_span{display:block;} body:is(body){font-display: swap;}</style> <script referrerpolicy="strict-origin-when-cross-origin" src="https://tag.clearbitscripts.com/v1/pk_710bf8e26b62ed985b7bd554f9d46299/tags.js" async=""></script> <script>!function () {var reb2b = window.reb2b = window.reb2b || []; if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"]; reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments); args.unshift(method);reb2b.push(args);return reb2b;};}; for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);} reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true; script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/reb2b.js.gz"; var first = document.getElementsByTagName("script")[0]; first.parentNode.insertBefore(script, first);}; reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("XOE9GH20JYOM");}();</script> <link href="https://su.ultrasite.com/170_favicon_8f80905d.ico" rel="shortcut icon"> <meta property="og:title" content="China Website Speed Test"> <meta property="og:description" content="Test the speed of a web page from 18 servers all around the world including Beijing, Shanghai & Guangzhou."> <link href="https://www.chinafy.com/tools/global-speed-test" rel="canonical"> </head> <body class="Body"> <div class="ModularPage_Component ModularPage_Component_div _symbolChildren _symbolRoot Symbol_Banner _hide" data-symbol-id="184" data-component-key="kbbo8rz2" id="Banner"><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_Banner__Close ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-symbol-id="184" data-component-key="kbbosqgk" id="BannerClose">close</i><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Banner__Text" data-symbol-id="184" data-component-key="kbbp6pn6" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Banner__Text__Content" data-symbol-id="184" data-component-key="kbbp7688" id="">Do you have a Hong Kong business? See how we can help you as an official </span><a href="/hong-kong-d-biz-programme" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Banner__Text__Content __underline" target="" data-symbol-id="184" data-component-key="kbbtia20" id="">DBIZ vendor</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Banner__Text__Content" data-symbol-id="184" data-component-key="kbbti47f" id="">!</span></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="184" data-component-key="kbbpd9ag" id=""><script type="text/javascript"> function hideBanner(){ var banner = document.getElementById('Banner') $(banner).hide(); var isDesktop = $(window).width()>991; var $dHeader = $('#headerContainer'); var $mHeader = $('#headerMobileContainer'); var $headerSpacer = $('#headerSpacer'); var mNav = document.getElementById('MobileNav') var $toolsNav = $('.Symbol_ToolsNav'); var $cover = $('.CoverSection'); $dHeader.css({ marginTop : ''}); $mHeader.css({ marginTop : ''}); $headerSpacer.css({ marginTop : ''}); if($toolsNav.length>0){ $toolsNav.css({ marginTop: ''}); } if($cover.length>0){ $cover.css({ marginTop: ''}); } if(!isDesktop){ var mNav = document.getElementById('MobileNav') // var headerH = $mHeader[0].offsetHeight; // $(mNav).css({ marginTop : headerH + 'px' }) $(mNav).css({ marginTop : '' }) } banner.setAttribute('data-ishidebanner',1); window.sessionStorage&&window.sessionStorage.setItem('bannerClosed',1); } function showBanner(){ return hideBanner(); var banner = document.getElementById('Banner') $(banner).css({position:'fixed',top:0,left:0,right:0}).show(); // adjustHeaderOffet(); } function adjustHeaderOffet(){ var banner = document.getElementById('Banner') var isDesktop = $(window).width()>991; // var $header = isDesktop ? $('#headerContainer') : $('#headerMobileContainer'); var $dHeader = $('#headerContainer'); var $mHeader = $('#headerMobileContainer'); var $headerSpacer = $('#headerSpacer'); var $toolsNav = $('.Symbol_ToolsNav'); var $cover = $('.CoverSection'); var h = banner.offsetHeight; // $header.css({ marginTop : h+'px'}) $dHeader.css({ marginTop : h+'px'}) $mHeader.css({ marginTop : h+'px'}) if($toolsNav.length>0){ $toolsNav.css({ marginTop: $toolsNav[0].offsetTop+h+'px'}); } if($cover.length>0){ $cover.css({ marginTop: h+'px'}); } $headerSpacer.css({ marginTop : h+'px'}) if(!isDesktop){ var mNav = document.getElementById('MobileNav') var mNavMarginTop = mNav.style.marginTop; $(mNav).css({ marginTop : mNavMarginTop + h + 'px' }) } } $( document ).ready(function() { var close = document.getElementById('BannerClose') if(window.sessionStorage&&window.sessionStorage.getItem('bannerClosed')){ hideBanner(); }else{ showBanner(); } $(close).click(function(event){ hideBanner(); }) window.onresize = function(event){ var banner = document.getElementById('Banner') if(banner.getAttribute('data-ishidebanner')!=1){ adjustHeaderOffet(); } }; setTimeout(function(){ window.onresize() },100) }) </script></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren _symbolRoot GlobalHeader" data-symbol-id="190" data-component-key="k0eyeq34" id="header"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeader__Spacer" data-symbol-id="190" data-component-key="k0eyeq36" id="headerSpacer"></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_Container desktopDisabled" data-symbol-id="190" data-component-key="k0eyeq37" id="headerMobileContainer"><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren desktopDisabled" href="https://www.chinafy.com" target="" data-symbol-id="190" data-component-key="k0eyeq38" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_Logo" data-symbol-id="190" data-component-key="k0eyeq39" id="headerMenuMobileLogo"><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren __light" data-symbol-id="190" data-component-key="k0eyeq3a" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_3790_adbf8b60.png" data-symbol-id="190" data-component-key="k0eyeq3b" id=""></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren __dark" data-symbol-id="190" data-component-key="k0eyeq3c" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_3789_d8cf85b6.png" data-symbol-id="190" data-component-key="k0eyeq3d" id=""></div></div></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_toggle desktopDisabled" data-symbol-id="190" data-component-key="k0eyeq3e" id="MobileMenuToggle"><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalMobileHeader_toggle__Menu ultra-material-icons ultra-material-icons--menu" data-icontext="menu" data-iconclassname="ultra-material-icons ultra-material-icons--menu" data-symbol-id="190" data-component-key="k0eyeq3f" id="headerMenuMobileToggleOpen">menu</i><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalMobileHeader_toggle__Close ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-symbol-id="190" data-component-key="k0eyeq3g" id="headerMenuMobileToggleClose">close</i></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_Nav_Container" data-symbol-id="190" data-component-key="k0eyeq3h" id="MobileNav"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeader__Container" data-symbol-id="190" data-component-key="k0eyeq3i" id="headerContainer"><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeader__Logo" href="https://www.chinafy.com/" target="" data-symbol-id="190" data-component-key="k0eyeq3j" id="headerLogo"><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeader__Logo__Image __light" data-symbol-id="190" data-component-key="k0eyeq3k" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="109px" loading="lazy" data-src="https://su.ultrasite.com/324_a_5462_664a20e8.png" data-symbol-id="190" data-component-key="k0eyeq3l" id=""></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeader__Logo__Image __dark" data-symbol-id="190" data-component-key="k0eyeq3m" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="150px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7753_b96681fa.png" data-symbol-id="190" data-component-key="k0eyeq3n" id="GlobalHeaderLogo"></div></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_Separator" data-symbol-id="190" data-component-key="k0eyeq3o" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalMobileHeader_Separator" data-symbol-id="190" data-component-key="k0eyeq3p" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeader__MenuWrapper" data-symbol-id="190" data-component-key="k0eyeq3q" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeader__Menu" data-symbol-id="190" data-component-key="k0eyeq3r" id="headerMenu"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link" data-symbol-id="190" data-component-key="lysm3tdp" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderMenu__Link__Heading" target="" data-symbol-id="190" data-component-key="lysm3tdq" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeader_dropdown_title_text" data-symbol-id="190" data-component-key="lysm3tdr" id="">Test your website</span><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalHeaderMenu__Link__HeadingIcon ultra-material-icons ultra-material-icons--arrow_drop_down" data-icontext="arrow_drop_down" data-iconclassname="ultra-material-icons ultra-material-icons--arrow_drop_down" data-symbol-id="190" data-component-key="lysm3tds" id="">arrow_drop_down</i></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown" data-symbol-id="190" data-component-key="lysm3tdt" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown__Arrow __SolutionsDropdownarrow" data-symbol-id="190" data-component-key="lysm3tdu" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col GlobalHeaderDropdown__Col--mobileWhiteBg" data-symbol-id="190" data-component-key="lysm3tdv" id=""><a href="/tools/global-speed-test" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysm3tdw" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysm3tdx" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9412_6e4447a4.png" data-symbol-id="190" data-component-key="lysm3tdy" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysm3tdz" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysm3te0" id="">Global Speed Test</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysm3te1" id="">How fast is your website, globally?</div></div></a><a href="/tools/visual-speed-test" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysm3te2" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysm3te3" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9411_14ed9503.png" data-symbol-id="190" data-component-key="lysm3te4" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysm3te5" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysm3te6" id="">Visual Speed Test</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysm3te7" id="">Does your website work in China?</div></div></a><a href="/tools/china-seo-basic-test" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysm3te8" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysm3te9" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9410_9fd8a1e3.png" data-symbol-id="190" data-component-key="lysm3tea" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysm3teb" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysm3tec" id="">Basic China SEO Test</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysm3ted" id="">Is your website indexing on Baidu, Sogou and more?</div></div></a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link" data-symbol-id="190" data-component-key="k0eyeq7h" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderMenu__Link__Heading" target="" data-symbol-id="190" data-component-key="k0eyeq7i" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeader_dropdown_title_text" data-symbol-id="190" data-component-key="k0eyeq7j" id="">Why Chinafy</span><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalHeaderMenu__Link__HeadingIcon ultra-material-icons ultra-material-icons--arrow_drop_down" data-icontext="arrow_drop_down" data-iconclassname="ultra-material-icons ultra-material-icons--arrow_drop_down" data-symbol-id="190" data-component-key="k0eyeq7k" id="">arrow_drop_down</i></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown" data-symbol-id="190" data-component-key="k0eyeq7l" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown__Arrow __SolutionsDropdownarrow" data-symbol-id="190" data-component-key="k0eyeq7m" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col GlobalHeaderDropdown__Col--mobileWhiteBg" data-symbol-id="190" data-component-key="k0eyeq7n" id=""><a href="/why-chinafy" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="k0p44w8l" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lyslagu5" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9402_c283a97f.png" data-symbol-id="190" data-component-key="lyslagu6" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="k0p44w8m" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="k0p44w8n" id="">Why Chinafy</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lyskfqmh" id="">Learn about what makes us unique.</div></div></a><a href="/case-studies" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="k1szy9il" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lyslbjpa" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9398_f4794163.png" data-symbol-id="190" data-component-key="lyslbjpb" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="k1szy9im" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="k1szy9in" id="">Customer Case Studies</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysklfiq" id="">Success stories with Chinafy.</div></div></a><a href="/trust" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="k1szkula" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lyslch15" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9408_5054eb31.png" data-symbol-id="190" data-component-key="lyslch16" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="k1szkulb" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="k1szkulc" id="">Trust Center</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysklvui" id="">Security, reliability, privacy, resilience and compliance.</div></div></a><a href="/technology" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysma0hq" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysma0hr" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9407_b6b80072.png" data-symbol-id="190" data-component-key="lysma0hs" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysma0ht" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysma0hu" id="">Integrations</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysma0hv" id="">Use the tools and platforms you love.</div></div></a><a href="/partners" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysmbbv4" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmbbv5" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9397_b5ca0577.png" data-symbol-id="190" data-component-key="lysmbbv6" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmbbv7" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmbbv8" id="">Ecosystem</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmbbv9" id="">Get help beyond web performance, on all-things China.</div></div></a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link" data-symbol-id="190" data-component-key="k0eyeq6u" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderMenu__Link__Heading" target="" data-symbol-id="190" data-component-key="k0eyeq6v" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeader_dropdown_title_text" data-symbol-id="190" data-component-key="k0eyeq6w" id="">Resources</span><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalHeaderMenu__Link__HeadingIcon ultra-material-icons ultra-material-icons--arrow_drop_down" data-icontext="arrow_drop_down" data-iconclassname="ultra-material-icons ultra-material-icons--arrow_drop_down" data-symbol-id="190" data-component-key="k0eyeq6x" id="">arrow_drop_down</i></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown" data-symbol-id="190" data-component-key="k0eyeq6y" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown__Arrow __SolutionsDropdownarrow" data-symbol-id="190" data-component-key="k0eyeq6z" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col GlobalHeaderDropdown__Col--mobileWhiteBg" data-symbol-id="190" data-component-key="k0eyeq70" id=""><a href="/how-chinafy-works" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="khlixnyh" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmtj55" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9405_4885d15f.png" data-symbol-id="190" data-component-key="lysmtj56" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="khlixnyi" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="khlixnyj" id="">How Chinafy Works</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmo2xt" id="">The Chinafy process.</div></div></a><a href="/blog" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lydz9bho" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmtbnl" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9404_6cdb596f.png" data-symbol-id="190" data-component-key="lysmtbnm" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lydz9bhp" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lydz9bhq" id="">Blog</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmp1d5" id="">Chinafy articles, white papers and more.</div></div></a><a href="/for-developers/configurations" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="k6voy7fv" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmt5v6" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9399_66eb9cc1.png" data-symbol-id="190" data-component-key="lysmt5v7" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="k6voy7fw" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="k6voy7fx" id="">Implementing Chinafy</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysms454" id="">Easy integrate Chinafy into your tech stack.</div></div></a><a href="/support/welcome" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysmtxt7" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmtxt8" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9409_9ab1c7da.png" data-symbol-id="190" data-component-key="lysmtxt9" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmtxta" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmtxtb" id="">Chinafy Support</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmtxtc" id="">Best-in-class support.</div></div></a><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" href="https://chinafyhelp.zendesk.com/" target="_blank" data-symbol-id="190" data-component-key="lysmvg90" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmvg91" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9400_1ddde0ef.png" data-symbol-id="190" data-component-key="lysmvg92" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmvg93" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmvg94" id="">Helpdesk<br></span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmvg95" id="">Links to all of our support channels.</div></div></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col GlobalHeaderDropdown__Col--mobileWhiteBg" data-symbol-id="190" data-component-key="lysn7sfs" id=""><a href="/chinafy-vs-cdn" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysn7sgn" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysn7sgo" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9396_4e367c64.png" data-symbol-id="190" data-component-key="lysn7sgp" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysn7sgq" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysn7sgr" id="">Chinafy vs. CDN</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysn7sgs" id="">Learn how enterprise-grade CDNs, including AWS, Alibaba Cloud, Cloudflare, work with Chinafy.</div></div></a><a href="/how-chinafy-works" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysn7sgt" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysn7sgu" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9406_9e17cef4.png" data-symbol-id="190" data-component-key="lysn7sgv" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysn7sgw" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysn7sgx" id="">Chinafy and your CMS</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysn7sgy" id="">Learn how Chinafy works with your custom, Sitecore, AEM, Webflow, Canvas, WordPress build.</div></div></a><a href="/faq" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="m14py6l9" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="m14py6la" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9410_9fd8a1e3.png" data-symbol-id="190" data-component-key="m14py6lb" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="m14py6lc" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="m14py6ld" id="">FAQs</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="m14py6le" id="">Chinafy's most frequently asked questions covering how to get started with Chinafy, Chinafy plans, security and more.</div></div></a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link" data-symbol-id="190" data-component-key="lysmezhy" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderMenu__Link__Heading" target="" data-symbol-id="190" data-component-key="lysmezi0" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeader_dropdown_title_text" data-symbol-id="190" data-component-key="lysmezi1" id="">Partners</span><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalHeaderMenu__Link__HeadingIcon ultra-material-icons ultra-material-icons--arrow_drop_down" data-icontext="arrow_drop_down" data-iconclassname="ultra-material-icons ultra-material-icons--arrow_drop_down" data-symbol-id="190" data-component-key="lysmezi2" id="">arrow_drop_down</i></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown" data-symbol-id="190" data-component-key="lysmezi3" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link__Dropdown__Arrow __SolutionsDropdownarrow" data-symbol-id="190" data-component-key="lysmezi4" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col GlobalHeaderDropdown__Col--mobileWhiteBg" data-symbol-id="190" data-component-key="lysmezi5" id=""><a href="/partners" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysmezi6" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmezi7" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9409_9ab1c7da.png" data-symbol-id="190" data-component-key="lysmezi8" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmezi9" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmezia" id="">Our partner program</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmezib" id="">Your award-winning support system.</div></div></a><a href="/partners/featured" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" target="" data-symbol-id="190" data-component-key="lysmezic" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmezid" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9403_9b68c150.png" data-symbol-id="190" data-component-key="lysmezie" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmezif" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmezig" id="">Find a partner</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmezih" id="">Access experts on Baidu Ads, ICP Licenses, WeChat marketing and more.</div></div></a><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderDropdown__Col__LinkBlock" href="https://forms.gle/H4nednusf1wparbQA" target="_blank" data-symbol-id="190" data-component-key="lysmezii" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__LeftIcon" data-symbol-id="190" data-component-key="lysmezij" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_9399_66eb9cc1.png" data-symbol-id="190" data-component-key="lysmezik" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Text" data-symbol-id="190" data-component-key="lysmezil" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Title" data-symbol-id="190" data-component-key="lysmezim" id="">Become a partner</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalHeaderDropdown__Col__LinkBlock__Content" data-symbol-id="190" data-component-key="lysmezin" id="">Join our partner program.</div></div></a></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenuPadding" data-symbol-id="190" data-component-key="khlirneb" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeader__Menu" data-symbol-id="190" data-component-key="khliewt5" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalHeaderMenu__Link" data-symbol-id="190" data-component-key="kcwsaajh" id=""><a href="/pricing" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren GlobalHeaderMenu__Link__Heading" target="" data-symbol-id="190" data-component-key="k0qgp2kh" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalHeader_dropdown_title_text" data-symbol-id="190" data-component-key="k0qgp2ki" id="">Pricing</span></a></div><a href="/get-started" class="ModularPage_Component ModularPage_Component_button _symbolChildren GlobalHeader__Menu__Button tabletDisabled phoneLandscapeDisabled phoneDisabled" target="" data-symbol-id="190" data-component-key="k0eyeq8d" id="ga-header-get-started"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren tabletDisabled phoneLandscapeDisabled phoneDisabled" data-symbol-id="190" data-component-key="k0eyeq8e" id="">Get Started</span></a><a class="ModularPage_Component ModularPage_Component_button _symbolChildren GlobalHeader__Menu__Button_2 tabletDisabled phoneLandscapeDisabled phoneDisabled" href="https://sites.chinafy.com/signin" target="" data-symbol-id="190" data-component-key="k0eyeq8b" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren tabletDisabled phoneLandscapeDisabled phoneDisabled" data-symbol-id="190" data-component-key="k0eyeq8c" id="">Login</span></a></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GetStartedForm __hide" data-symbol-id="190" data-component-key="k0eyeq8f" id="gsFormNew"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GetStartedOverlay" data-symbol-id="190" data-component-key="k0eyeq8g" id="gsOverlay"></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GetStartedInner" data-symbol-id="190" data-component-key="k0eyeq8h" id="gsInner"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Body" data-symbol-id="190" data-component-key="kh5yxbhk" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Form" data-symbol-id="190" data-component-key="kh5yxbhl" id="gsFormShow"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbhn" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="190" data-component-key="kh5yxbho" id="">Which website do you want to Chinafy?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbhp" id=""><input placeholder="Enter a web page URL (e.g. www.website.com)" pattern="(https?:)?//.*" required="true" type="url" class="GetStarted__FormInput" name="url"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbhq" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="190" data-component-key="kh5yxbhr" id="">Tell us your name?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbhs" id=""><input placeholder="e.g. Jane Smith" required="true" type="text" class="GetStarted__FormInput" name="name"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbht" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="190" data-component-key="kh5yxbhu" id="">What best describes your company role?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbhv" id=""><select required="true" class="GetStarted__FormInput" name="role"> <option value="Engineer/Site Reliability">Engineer/Site Reliability</option> <option value="Marketing & Growth">Marketing &amp; Growth</option> <option value="Data Scientist">Data Scientist</option> <option value="Business Owner">Business Owner</option> <option value="Agency">Agency</option> <option value="Other">Other</option> </select><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbhw" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="190" data-component-key="kh5yxbhx" id="">What's your Work Email Address?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbhy" id=""><input placeholder="e.g. name@company.com" required="true" type="email" class="GetStarted__FormInput" name="email"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow __hide" data-symbol-id="190" data-component-key="kh5yxbhz" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel Symbol___clickable" data-symbol-id="190" data-component-key="kh5yxbi0" id="gsFormDiscountLabel">Have a discount code?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbi1" id=""><input maxlength="50" style="display:none;" placeholder="" type="text" class="GetStarted__FormInput" name="discountCode"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbi2" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Agreement" data-symbol-id="190" data-component-key="kh5yxbi3" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="190" data-component-key="kh5yxbi4" id="">By clicking 'Get Started', I also agree to Chinafy's </span><a href="/legal/terms-of-service" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol__inlineTextLink" target="_blank" data-symbol-id="190" data-component-key="kh5yxbi5" id="">Terms of Service</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="190" data-component-key="kh5yxbi6" id=""> &amp; </span><a href="/privacy-policy" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol__inlineTextLink" target="_blank" data-symbol-id="190" data-component-key="kh5yxbi7" id="">Privacy Policy</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="190" data-component-key="kh5yxbi8" id="">.</span></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbi9" id=""><input maxlength="50" style="display:none;" placeholder="" type="text" class="GetStarted__FormInput" name="discountCode"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="190" data-component-key="kh5yxbia" id=""><a class="ModularPage_Component ModularPage_Component_button _symbolChildren Symbol_GetStarted__FormSubmit" href="javascript:;" target="" data-symbol-id="190" data-component-key="kh5yxbib" id="gsSubmit"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbic" id="">Get Started</span></a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__ErrorMessage" data-symbol-id="190" data-component-key="kh5yxbid" id="gsErrorMessage"></span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="ko2ryufm" id=""><input placeholder="" required="false" type="hidden" class="GetStarted__FormInput" name="additionalInfo"><label style="display:none;"></label></div></div></div><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_GetStarted__Close ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-symbol-id="190" data-component-key="kh5yxbie" id="gsClose">close</i><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbif" id="gsCompleteShow"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Symbol_Symbol_Title Symbol_Symbol_Symbol_Title--H3 Symbol_Symbol_Symbol_Title--light Symbol_Symbol_Symbol_Anim__FadeInOnScroll Symbol_Symbol_Symbol_ParagraphTitle" data-symbol-id="190" data-component-key="kh5yxbig" id="">Thanks for getting in touch!</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_Symbol_Symbol_Anim__FadeInOnScroll" data-symbol-id="190" data-component-key="kh5yxbih" id="">One of our Chinafy experts will be in touch with you via email within the next 24 hours with<br><br>1 - Expected post-Chinafy results<div>2 - Your Custom Plan</div><div>3 - Next steps.</div><div><br></div><div>P.S. Make sure to check your promotions inbox in case our message lands there.</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbii" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_Anim__FadeInOnScroll" data-symbol-id="190" data-component-key="kh5yxbij" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbik" id="">Please feel free to check out our </span><a href="/case-studies" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_GetStarted__OutboundLink" target="" data-symbol-id="190" data-component-key="kh5yxbil" id="">case studies</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbim" id=""> or </span><a href="/blog" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_GetStarted__OutboundLink" target="" data-symbol-id="190" data-component-key="kh5yxbin" id="">blog</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="190" data-component-key="kh5yxbio" id=""> in the meantime.</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="k0eyeq99" id=""><span data-get-started="popup" class="__gs_anchor">[[embed: get started form popup type]]</span> <style> .__gs_anchor { display: none; } body.loading, body.loading * { cursor: wait !important; } .ModularPageEditor_Page .__gs_anchor, .ModularPageEditor_Page #gsFormNew #gsHeader { display: block; } #gsFormNew.__overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100; animation: showGSForm .5s 1 ease; } /* gsform animation */ /*#gsFormNew.__overlay:not(.__show){display:none;}*/ #gsFormNew.__overlay #gsOverlay { transition: all .5s ease .25s; } #gsFormNew.__overlay.__show #gsInner { position: absolute; top: 50%; right: 50%; transform: scale(1) translate(50%, -50%); opacity: 1; transition: all .8s cubic-bezier(0.22, 0.61, 0.36, 1); } #gsFormNew.__overlay:not(.__show) { display: block !important; pointer-events: none; } #gsFormNew.__overlay:not(.__show) #gsOverlay { opacity: 0; pointer-events: none; } #gsFormNew.__overlay:not(.__show) #gsInner { position: absolute; top: 20px; right: 40px; transform-origin: top right; transform: scale(0) translate(0%, 0%); opacity: 0; transition: all .8s cubic-bezier(0.22, 0.61, 0.36, 1); } /*#gsFormNew #gsHeader{display:none;}*/ #gsFormNew.__overlay #gsOverlay { display: block; z-index: 100; } #gsFormNew.__overlay #gsHeader { display: block; } #gsFormNew.__overlay #gsInner { z-index: 101; } #gsFormNew input, #gsFormNew select, #gsFormNew textarea { width: 100%; border: 1px solid #ddd; border-radius: 4px; padding: 16px 8px; font-size: 14px; } #gsFormNew input+label, #gsFormNew select+label, #gsFormNew textarea+label { font-size: 10px; } #gsFormNew input+label.__error, #gsFormNew select+label.__error, #gsFormNew textarea+label.__error { color: #EE4129; } @keyframes showGSForm { from { opacity: 0; } to { opacity: 1; } } </style> <script> window.addEventListener('DOMContentLoaded', function () { var SUBMIT_API = 'https://sites.chinafy.com/api2/sitetest/add'; var SUBMIT_SOURCETYPE = 2; var OVERLAY_CLS = '__overlay'; var GSForm = (function () { function f(ct) { if (!ct) return console.warn('Form element not found.'); if (ct.dataset.rendered) return console.warn('form already rendered'); this.formCt = ct; var typeCt = ct.querySelector('[data-get-started]'); this.type = typeCt.getAttribute('data-get-started'); this.inputs = ct.querySelectorAll('input,select,textarea'); this.enterpriseField = ct.querySelector('#enterprise-field'); this.overlay = ct.querySelector('#gsOverlay'); this.submitButton = ct.querySelector('#gsSubmit'); this.discountLabel = ct.querySelector('#gsFormDiscountLabel'); this.closeButton = ct.querySelector('#gsClose');//'i[data-icontext="close"]'); this.errorMessageCt = ct.querySelector('#gsErrorMessage'); if (!this.submitButton || !this.closeButton || this.inputs.length == 0) return console.warn('Critical elemenst not found.'); this.init(); this.render(); } f.prototype.init = function () { this.addListeners(); this.formCt.dataset.rendered = true; if (this.enterpriseField) { var isEnterprisePage = location.pathname.indexOf('/enterprise') >= 0; this.enterpriseField.style.display = isEnterprisePage ? '' : 'none'; } }; f.prototype.addListeners = function () { this.overlay && this.overlay.addEventListener('click', this.handleClickClose.bind(this)); this.closeButton && this.closeButton.addEventListener('click', this.handleClickClose.bind(this)); this.submitButton && this.submitButton.addEventListener('click', this.handleSubmitForm.bind(this)); this.discountLabel && this.discountLabel.addEventListener('click', this.handleClickDiscountLabel.bind(this)); for (var i = 0, input; input = this.inputs[i]; i++) { var eventType = input.type == 'url' ? 'change' : 'input'; input.addEventListener(eventType, this.handleInputChange.bind(this)); input.addEventListener('focus', (function () { if (!this.formFirstFocused) { window.gtag && window.gtag('event', 'Get Started Form Focused', { 'additional_info': this.additionalInfo, }); this.formFirstFocused = true; } }).bind(this)); } }; f.prototype.render = function () { switch (this.type) { case 'popup': $(this.formCt).addClass(OVERLAY_CLS); this.closePopup(); break; case 'inline': default: this.closeButton.style.display = 'none'; break; } this.showForm(); }; f.prototype.renderErrorMessage = function (message) { this.errorMessageCt.textContent = message; }; /* ui actions */ f.prototype.showPopup = function (domain, additionalInfo) { this.additionalInfo = additionalInfo || ''; window.gtag && window.gtag('event', 'Get Started Form Popup Open', { 'additional_info': this.additionalInfo, }); this.showForm(); $(this.formCt).addClass('__show').removeClass('__hide'); if (domain) { for (var i = 0, input; input = this.inputs[i]; i++) { if (input.name == 'url') { input.value = domain; break; } } } if (additionalInfo) { for (var i = 0, input; input = this.inputs[i]; i++) { if (input.name == 'additionalInfo') { input.value = additionalInfo; break; } } } }; f.prototype.closePopup = function () { $(this.formCt).removeClass('__show'); }; f.prototype.showForm = function () { $(this.formCt.querySelector('#gsInner')).show(); $(this.formCt.querySelectorAll('#gsFormShow')).show(); $(this.formCt.querySelectorAll('#gsCompleteShow')).hide(); }; f.prototype.showComplete = function () { $(this.formCt.querySelector('#gsHeader')).show(); $(this.formCt.querySelectorAll('#gsFormShow')).hide(); $(this.formCt.querySelectorAll('#gsCompleteShow')).show(); }; /* ui events */ f.prototype.handleInputChange = function (event) { this.validateAndGetFormData(event.target); }; f.prototype.handleSubmitForm = function (event) { this.submitForm(); }; f.prototype.handleClickClose = function (event) { this.closePopup(); }; f.prototype.handleClickDiscountLabel = function (event) { $(this.formCt.querySelector('input[name="discountCode"]')).toggle().focus(); }; /* actions */ f.prototype.validateAndGetFormData = function (checkingInput) { var valid = true; var data = {}; var inputToFocus; for (var i = 0, input; input = this.inputs[i]; i++) { var label = input.nextElementSibling; var labelText = label.textContent; var name = input.name; var value = input.value; var type = input.type; var _valid = input.checkValidity(); var message = input.validationMessage; if (type == 'url') { try { var urlObject = new URL(prependUrlProtocol(value, true)); input.value = value = urlObject.href; message = ''; _valid = true; } catch (error) { message = "Please enter a valid URL!"; _valid = false; } } if (!_valid) { if (!checkingInput) { inputToFocus = inputToFocus || input; } if (!checkingInput || checkingInput == input) { labelText = message; } valid = false; } else { data[name] = value; labelText = ''; } label.innerHTML = labelText; } if (inputToFocus) inputToFocus.focus(); return valid && data; }; f.prototype.startLoading = function () { this.loading = true; $(document.body).addClass('loading'); }; f.prototype.stopLoading = function () { this.loading = false; $(document.body).removeClass('loading'); }; /* api */ f.prototype.submitForm = function () { // console.log("submitForm"); if (this.loading) return; var data = this.validateAndGetFormData(); if (!data) return; if (domainFiltered(data.url)) return this.handleError(); // data.name = data.name + ' - ' + data.role; data.source = SUBMIT_SOURCETYPE; data.automated = 1; if (localStorage.cnf_uid) { data.userUuid = localStorage.cnf_uid; } // console.log("submitForm data", data); this.startLoading(); this.renderErrorMessage(''); _post(SUBMIT_API, data).then((function (ret) { if (ret && ret.success) { this.showComplete(); window.gtag && window.gtag('event', 'Get Started Form Sign Up', { 'additional_info': this.additionalInfo, }); } else { throw (ret && ret.errorMsg); } }).bind(this)).catch((function (error) { this.handleError(error); }).bind(this)).then((function () { this.stopLoading(); }).bind(this)); }; f.prototype.handleError = function (error) { var message = error || 'Service is unavailable at the moment. Please try again later or contact our support.'; this.renderErrorMessage(message); }; return f; })(); // common functions function _get(url, data, cfg) { return fetch(url + generateUrlParam(data || {}), Object.assign({ credentials: 'include', method: 'GET', }, cfg)).then(function (res) { return res.ok ? res.json() : Promise.reject(res.statusText || res.status); }); } function _post(url, data, cfg) { // var fd = new FormData(); // Object.keys(data).map(function(k){fd.append(k,data[k])}); var body = Object.keys(data).map(function (k) { return k + '=' + encodeURIComponent(data[k]) }).join('&'); return fetch(url, Object.assign({ credentials: 'include', method: 'POST', // body: fd body: body, headers: { 'content-type': 'application/x-www-form-urlencoded', } }, cfg)).then(function (res) { return res.ok ? res.json() : Promise.reject(res.statusText || res.status); }); } function extractHostname(url, stripWWW) { if (!url || typeof url !== 'string') return ''; var hostname = url; hostname = ((url.split('//')[1] || url).split('/')[0] || url); if (stripWWW) { hostname = hostname.split('www.')[1] || hostname; } return hostname; } function extractPathname(url, lastChunkOnly) { var arr = (url.split('//')[1] || url).split('?')[0].split('/').slice(1); if (lastChunkOnly) { arr = arr.slice(-1); } return arr.join('/') || url; } function prependUrlProtocol(url, https) { //Checks for http://, https:// , //example.com if (!/^(https?:)?\/\//i.test(url.trim())) { return 'http' + (https ? 's' : '') + '://' + url; } return url; } function stripUrlProtocol(url, isHideRelativeProtocol) { return isHideRelativeProtocol ? url.replace(/^https?:\/\/(www\.)?/, '') : url.replace(/^https?:\/\/(www\.)?/, '\/\/'); } function generateUrlParam(params) { for (var i in params) { if (params[i] === null || params[i] === undefined || params[i] === '') delete params[i]; } if (Object.keys(params).length == 0) return ''; return '?' + Object.keys(params).map(function (v) { return v + '=' + params[v]; }).join('&'); } function delay(t, v) { return new Promise(function (resolve) { setTimeout(resolve.bind(null, v), t) }); } // main function renderGSForms() { var formCts = document.body.querySelectorAll('#gsFormNew'); var forms = []; for (var i = 0, ct; ct = formCts[i]; i++) { var form = new GSForm(ct); forms.push(form); if ('popup' == form.type) { window.GSPopupForm = form; } } return forms; } window.GSForms = renderGSForms(); }); </script></div></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="k0ezocle" id=""> <style> #headerMenu { white-space: nowrap; } #headerMenu .GlobalHeaderDropdown__Col__LinkBlock { white-space: wrap; } @media (min-width: 991px) { #headerMenu > *:hover > * { opacity: 1; pointer-events: all; } } @media (max-width: 991px) { body.mobileMenuIsOpen { overflow: hidden !important; height: 100vh !important; } body.mobileMenuIsOpen #header #headerMobileContainer { border-bottom: 0 !important; background-color: white !important; } body.mobileMenuIsOpen #MobileNav { /*height: auto !important; pointer-events: all !important; opacity: 1 !important;*/ height: auto !important; pointer-events: all !important; opacity: 1 !important; box-sizing: border-box; transform: translateX(0) !important; } body.mobileMenuIsOpen #headerMenuMobileLogo ._light { display: none !important; } body.mobileMenuIsOpen #headerMenuMobileLogo ._dark { display: block !important; } body.mobileMenuIsOpen #MobileMenuToggle { background: #0061d5; } body.mobileMenuIsOpen #MobileMenuToggle #headerMenuMobileToggleOpen { opacity: 0 !important; } body.mobileMenuIsOpen #MobileMenuToggle #headerMenuMobileToggleClose { opacity: 1 !important; } .mobileExpandDropdown + * { display: block !important; pointer-events: all !important; height: auto !important; opacity: 1 !important; position: relative !important; } .mobileExpandDropdown > i { transform: rotate(180deg); } } #header.header_sticky #headerLogo.__light { display: none !important } #header.header_sticky #headerLogo.__dark { display: block !important } #header.header_sticky #headerMenuMobileLogo .__light { display: none !important } #header.header_sticky #headerMenuMobileLogo .__dark { display: block !important } </style> <script> function onClickToggleMobileMenu(){ if(document.body.classList.contains('mobileMenuIsOpen')){ $('.mobileExpandDropdown').removeClass('mobileExpandDropdown'); } document.body.classList.toggle("mobileMenuIsOpen"); } function onClickToggleMenuDropdown(e){ var target = e.target; if(target.classList.contains('mobileExpandDropdown')){ $(target).removeClass('mobileExpandDropdown'); } else { $('.mobileExpandDropdown').removeClass('mobileExpandDropdown'); $(target).addClass('mobileExpandDropdown') } } function onClickStopPropagation(e){ e.stopPropagation(); } $(document).ready(function(){ // Mobile header menu var toggle = document.getElementById('MobileMenuToggle'); if(toggle) { toggle.addEventListener('click', onClickToggleMobileMenu, false); } var headerMenu = document.getElementById('headerMenu'); var headerMenuLinks = headerMenu.childNodes; var headerLinks = []; for(var i=0,link; link=headerMenuLinks[i]; i++){ link.addEventListener('click', onClickToggleMenuDropdown, false); var dropdown = link.querySelector('a + *'); if(dropdown){ dropdown.addEventListener('click', onClickStopPropagation, false); // Header dropdowns links hover effect var anchors = dropdown.querySelectorAll('a'); for(var j=0,a;a=anchors[j];j++){ headerLinks.push(a); } } } $(headerLinks).hover(function() { $(this).siblings("a").css({opacity:0.5}); }, function() { $(this).siblings("a").css({opacity:1}); }); // Header on scroll down background anim effect window.onscroll = function (e) { var scrollTop = $(window).scrollTop(); var $header = $("#header"); var $headerContainer = $('#headerContainer'); if (scrollTop > 0){ $header.addClass('header_sticky'); } else { $header.removeClass('header_sticky'); } } }); </script> </div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalCookiesPopup __hide" data-symbol-id="190" data-component-key="k2txno54" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalCookiesPopup_Content" data-symbol-id="190" data-component-key="k2txq5ku" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren GlobalCookiesPopup_Title" data-symbol-id="190" data-component-key="k2txv68d" id="">This site uses cookies</div><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren GlobalCookiesPopup_HideButton ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-symbol-id="190" data-component-key="k2tye6a0" id="cookies-popup-icon">close</i><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalCookiesPopup_Body" data-symbol-id="190" data-component-key="k2ty160e" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren GlobalCookiesPopup_Text" data-symbol-id="190" data-component-key="k2u2ccn6" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalCookiesPopup_TextBlock" data-symbol-id="190" data-component-key="k2u2bla3" id="">We use cookies to enhance your browsing experience, analyze site traffic, and serve tailored experiences. By continuing to browse or closing this banner, you consent to our use of cookies. Read more about how we use cookies </span><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren GlobalCookiesPopup_TextBlock __link" href="https://www.chinafy.com/terms" target="_blank" data-symbol-id="190" data-component-key="k2u2e5d9" id="">here</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren GlobalCookiesPopup_TextBlock" data-symbol-id="190" data-component-key="k2u2dmuq" id="">.</span></div><a class="ModularPage_Component ModularPage_Component_button _symbolChildren GlobalHeader__Menu__Button GlobalCookiesPopup_Button" target="" data-symbol-id="190" data-component-key="k2ty8chg" id="cookies-popup-button"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="190" data-component-key="k2ty8chh" id="">Accept Cookies</span></a></div></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="190" data-component-key="k2u1i2rh" id=""><script type="text/javascript"> (function(){ var cookieName = 'chinafy_acceptCookies'; function handleBind(){ var button = document.querySelector('#cookies-popup-button'); var icon = document.querySelector('#cookies-popup-icon'); button.addEventListener('click',handleAcceptCookies); icon.addEventListener('click',handleAcceptCookies); } function handleAcceptCookies(){ setCookie(cookieName,'yes'); hideCookiePopup(); } function hideCookiePopup(){ var popup = document.querySelector('.GlobalCookiesPopup'); $(popup).addClass('__hiding'); (function(){ $(popup).addClass('__hide') }).defer(300); } function showCookiePopup(){ var popup = document.querySelector('.GlobalCookiesPopup'); $(popup).removeClass('__hide'); } $(document).ready(function(){ handleBind(); var isAccepted = getCookie(cookieName); if(!isAccepted){ //showCookiePopup(); } }); })(); </script></div></div></div><div class="ModularPage_Component ModularPage_Component_div PageContent" data-component-key="jz0im0it" id=""><div class="ModularPage_Component ModularPage_Component_div Cover" data-component-key="k0pxj5ao" id=""><div class="ModularPage_Component ModularPage_Component_div PageContent__Row PageContent__Row--alignCenter" data-component-key="k0pxj5au" id=""><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--centerText" data-component-key="k0pxj5av" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Cover__Title" data-component-key="k0pxj5aw" id="">Global Speed Test</h1><div class="ModularPage_Component ModularPage_Component_p Cover__Text" data-component-key="k0pxj5ay" id=""><div>Test your site from 18 servers around the world including Beijing, Shanghai, Guangzhou, China.</div></div></div></div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="ktijerln" id=""><style> .GlobalHeader__Container.GlobalHeader__Container { background: #4a4a4a; box-shadow: none; color: #ffffff; } .GlobalHeader__Menu__Button_2.GlobalHeader__Menu__Button_2 { color: #ffffff; background: rgba(0,0,0,0.2); border: none; } </style> <script> (function(){document.querySelector('#GlobalHeaderLogo').src='https://su.ultrasite.com/170_a_5473_7d4624a1.png';}()); </script></div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Section" data-component-key="jz0im0j1" id=""><div class="ModularPage_Component ModularPage_Component_container MainContainer" data-component-key="ktijceyx" id=""><div class="ModularPage_Component ModularPage_Component_div LeftMenu" data-component-key="ktijdxty" id=""><div class="ModularPage_Component ModularPage_Component_div MenuDropdown" data-component-key="ktl8prdt" id="MenuDropdown"><span class="ModularPage_Component ModularPage_Component_span MenuDropdown_text" data-component-key="ktl8ptoe" id="">Tools</span><i class="ModularPage_Component ModularPage_Component_icon ultra-material-icons ultra-material-icons--keyboard_arrow_down" data-icontext="keyboard_arrow_down" data-iconclassname="ultra-material-icons ultra-material-icons--keyboard_arrow_down" data-component-key="ktl8pvlv" id="">keyboard_arrow_down</i></div><div class="ModularPage_Component ModularPage_Component_div MenuInner __show" data-component-key="ktl8f97b" id="MenuDropdownInner"><div class="ModularPage_Component ModularPage_Component_div" data-component-key="ktjm12t7" id=""><span class="ModularPage_Component ModularPage_Component_span LeftMenu__Heading" data-component-key="ktjwiukl" id="">FREE RESOURCES</span><div class="ModularPage_Component ModularPage_Component_list LeftMenu__LinkList" data-withbullet="0" data-listtype="ul" data-component-key="ktjwmyxb" id=""><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwmyxc" id=""><a href="/tools/global-speed-test" class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link __active" target="" data-component-key="ktjwlh3g" id="">Global Speed Test</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwtttj" id=""><a href="/tools/visual-speed-test" class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwtttk" id="">Visual Speed Test</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwvpkp" id=""><a href="/tools/china-code-test" class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwvpkq" id="">China Code Test</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwmyxd" id=""><a href="/tools/china-seo-basic-test" class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwmivz" id="">China SEO Basic Test</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwy05w" id=""><a href="/tools/resource-test" class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwy05x" id="">Resource Test</a></li></div></div><div class="ModularPage_Component ModularPage_Component_div __hide" data-component-key="ktjwnt34" id=""><span class="ModularPage_Component ModularPage_Component_span LeftMenu__Heading" data-component-key="ktjwnt35" id="">ENTERPRISE TOOLS</span><div class="ModularPage_Component ModularPage_Component_list LeftMenu__LinkList" data-withbullet="0" data-listtype="ul" data-component-key="ktjwnt36" id=""><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwnt37" id=""><a class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwnt38" id="">Chinafy-A-Page</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwnt39" id=""><a class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwnt3a" id="">Side-By-Side Analysis</a></li><li class="ModularPage_Component ModularPage_Component_listItem" data-component-key="ktjwove9" id=""><a class="ModularPage_Component ModularPage_Component_linkText LeftMenu__Link" target="" data-component-key="ktjwovea" id="">Time Series Analysis</a></li></div></div></div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="ktl9vltp" id=""><style> @media (min-width: 991px) { .LeftMenu.LeftMenu { position: -webkit-sticky; position: sticky; top: 100px; align-self: flex-start; } } </style> <script> (function(){ var menuDropdown = document.querySelector('#MenuDropdown'); var menuDropdownInner = document.querySelector('#MenuDropdownInner'); menuDropdownInner.classList.remove('__show'); menuDropdown.addEventListener('click',handleClickMenuDropdown); menuDropdown.addEventListener('touch',handleClickMenuDropdown); function handleClickMenuDropdown(event){ if(menuDropdownInner.classList.contains('__show')){ menuDropdownInner.classList.remove('__show'); }else{ menuDropdownInner.classList.add('__show'); } } })(); </script></div></div><div class="ModularPage_Component ModularPage_Component_div MainSection" data-component-key="ktjl43yv" id=""><h2 class="ModularPage_Component ModularPage_Component_h2 MainHeading" data-component-key="ktjorldt" id="">Global Speed Test</h2><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjpjgna" id="">Test your site from 18 servers around the world including Beijing, Shanghai, Guangzhou, China.</div><div class="ModularPage_Component ModularPage_Component_div SpeedTestInputBox" data-component-key="ktiitznl" id=""><div class="ModularPage_Component ModularPage_Component_div TextInput__Input" data-component-key="jz0im0j8" id=""><div class="ModularPage_Component ModularPage_Component_div InputContainer" data-component-key="k207mizx" id=""><div class="ModularPage_Component ModularPage_Component_div InputWrapper" data-component-key="jz0im0j9" id=""><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="jz0im0ja" id=""><div id="speed-test-input-wrapper"> <input placeholder="www.yourwebsite.com" style="" class="flex-1" autocapitalize="none" autocorrect="off" id="speed-test-domain-input"> <select placeholder="www.yourwebsite.com" style="" id="speed-test-network-select"> <option disabled="">Network Speed</option> <option value="Turtle">Turtle</option> <option value="GPRS">GPRS</option> <option value="Regular2G">Regular2G</option> <option value="Good2G">Good2G</option> <option value="Regular3G">Regular3G</option> <option selected="" value="Good3G">Good3G</option> <option value="Regular4G">Regular4G</option> <option value="DSL">DSL</option> <option value="WiFi">WiFi</option> </select> </div> <style> #speed-test-input-wrapper { display: flex; width: 100%; border:1px solid #dddddd; border-radius: 5px; } #speed-test-domain-input { flex: 1; /* width:100%;*/ height: 60px; /*border:1px solid #dddddd;*/ border: 0; border-right:1px solid #dddddd; outline:none; padding:0 40px; box-sizing:border-box; box-shadow: none; -webkit-appearance: none; -webkit-border-radius: 0px; background: none; } #speed-test-network-select { width: 160px; height: 60px; /*border:1px solid #dddddd;*/ outline:none; padding:0 20px; box-sizing:border-box; box-shadow:none; background:#fff; border: 0; -webkit-appearance: none; -webkit-border-radius: 0px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; cursor: pointer; } #speed-test-domain-input:focus::placeholder{ opacity:0 } @media (max-width: 991px) { #speed-test-input-wrapper { display: block; border:0; } #speed-test-domain-input, #speed-test-network-select { border-radius: 5px; margin-bottom: 20px; width: 100%; border:1px solid #dddddd; } #speed-test-domain-input { padding: 0 1em 0 2.5em; } } </style> </div><i class="ModularPage_Component ModularPage_Component_icon InputContainer__InputIcon ultra-material-icons ultra-material-icons--language" data-icontext="language" data-iconclassname="ultra-material-icons ultra-material-icons--language" data-component-key="jzxclzx5" id="">language</i><i class="ModularPage_Component ModularPage_Component_icon InputContainer__SelectIcon ultra-material-icons ultra-material-icons--arrow_drop_down" data-icontext="arrow_drop_down" data-iconclassname="ultra-material-icons ultra-material-icons--arrow_drop_down" data-component-key="k0rcm2e6" id="">arrow_drop_down</i></div></div><div class="ModularPage_Component ModularPage_Component_div CoverInputButtons" data-component-key="k03oujxt" id=""><div class="ModularPage_Component ModularPage_Component_div TestButtonWrapper" data-component-key="jzvyu1xp" id=""><div class="ModularPage_Component ModularPage_Component_div Button Button__Grey Button__Disabled _hide" data-component-key="jz0im0jb" id="change-url-button"><span class="ModularPage_Component ModularPage_Component_span" data-component-key="jz0im0jd" id="">Change URL</span></div></div><div class="ModularPage_Component ModularPage_Component_div TestButtonWrapper" data-component-key="jzvyunpq" id=""><div class="ModularPage_Component ModularPage_Component_div Button" data-component-key="jzvytvp1" id="start-test-button"><span class="ModularPage_Component ModularPage_Component_span" data-component-key="jzvytvp2" id="start-button-text">Run Test</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div InputWrapper" data-component-key="k207q3de" id=""><div class="ModularPage_Component ModularPage_Component_div" data-component-key="k207v1yc" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock SelectorLink" target="" data-component-key="k207ymex" id="speed-test-location-none"><span class="ModularPage_Component ModularPage_Component_span" data-component-key="k207wq6p" id="">Select None<br></span></a><a class="ModularPage_Component ModularPage_Component_linkBlock SelectorLink _selected" target="" data-component-key="k2085g03" id="speed-test-location-all"><span class="ModularPage_Component ModularPage_Component_span" data-component-key="k2085g04" id="">Select All<br></span></a></div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="k207q3df" id=""><table id="speed-test-location-wrapper"> <thead></thead> <tbody></tbody> </table> <style> #speed-test-location-wrapper { width: 100%; box-shadow: rgba(0,0,0,0.1) 0px 0px 8px 0px; font-size: 14px; border-radius: 5px; overflow: hidden; } #speed-test-location-wrapper .wrapper { display: flex; flex-direction: row-reverse; align-items: center; } #speed-test-location-wrapper td { color: #5A6075; padding: 5px 15px; background-color: #FFF; border: none; } #speed-test-location-wrapper thead td { font-weight: 500; background-color: #F7FAFC; border-bottom: 1px solid rgba(0,0,0,.05); } #speed-test-location-wrapper td:first-child { border-right: 1px solid rgba(0,0,0,.05); padding-left: 25px; } #speed-test-location-wrapper td:last-child { padding-right: 25px; } #speed-test-location-wrapper tbody tr:last-child td { padding-bottom: 10px; } #speed-test-location-wrapper td label { flex: 1; text-align: left; padding-right: 1em; } #speed-test-location-wrapper td input { margin: 0; color: #000; } #speed-test-location-wrapper td label, #speed-test-location-wrapper td input { transition: all .3s; -webkit-transition: all .3s; } #speed-test-location-wrapper td input:not(:checked), #speed-test-location-wrapper td input:not(:checked) + label { opacity: 0.5; } </style></div></div></div><div class="ModularPage_Component ModularPage_Component_div ResultPageSection" data-component-key="jzxfj1uu" id=""><div class="ModularPage_Component ModularPage_Component_div ResultTableWrapper" data-component-key="jzx31mha" id="ResultTable"><div class="ModularPage_Component ModularPage_Component_div ToolsPageSection" data-component-key="jzvz8d14" id="test-result-table"><div class="ModularPage_Component ModularPage_Component_div SiteScanURLTextRow" data-component-key="jzvz8d15" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock LinkBlock" href="javascript:;" target="_blank" data-component-key="jzvz8d17" id="site-scan-url-link"><span class="ModularPage_Component ModularPage_Component_span SiteScanURLText" data-component-key="jzvz8d16" id="site-scan-domain">Retrieving domain...</span></a><div class="ModularPage_Component ModularPage_Component_div SiteScanTimestampText" data-component-key="jzx3abef" id="site-scan-timestamp-wrapper"><div class="ModularPage_Component ModularPage_Component_p SiteScanTimestampText__P" data-component-key="jzx3anzt" id="">Results as of: </div><div class="ModularPage_Component ModularPage_Component_p SiteScanTimestampText__P" data-component-key="jzx3capm" id="site-scan-timestamp-text">[timestamp]</div></div></div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="jzvz8d19" id=""> <form class="SpeedTest_Form"> <input placeholder="yourwebsite.com" name="url" id="speed-test-domain"> </form> <div class="SpeedTest_Wrapper"> <div class="SpeedTest_Scroll"> <table id="speed-test-results-table" class="SpeedTest_Table"> <thead> <tr> <th>Location</th> <th>Loading Time</th> <th>TTFB</th> <th>First Paint</th> <th>Interactive</th> <th>Page Size</th> <th>Resources</th> <th>Variance</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> <style> .SpeedTest_Form { display: none; font-size: 12px; } .SpeedTest_Table { min-width: 100%; min-width: calc(100% - 1px); color: #5A6074; font-size: 13px; } /*.SpeedTest_Table thead, */ .SpeedTest_Table thead tr th { background: #E4E8EB !important; color: #5A6074; height: 50px !important; line-height: 50px !important; padding: 0 15px; } tr[data-loc="chengdu"] td, tr[data-loc="hohhot"] td, tr[data-loc="beijing"] td, tr[data-loc="shanghai"] td, tr[data-loc="guangzhou"] td { background: rgba(180,200,255,1); } tr[data-loc="chengdu"] td:first-child, tr[data-loc="hohhot"] td:first-child, tr[data-loc="beijing"] td:first-child, tr[data-loc="shanghai"] td:first-child, tr[data-loc="guangzhou"] td:first-child { background: rgba(180,200,255,1) !important; } tr[data-loc="chengdu"] td:nth-child(2), tr[data-loc="hohhot"] td:nth-child(2), tr[data-loc="beijing"] td:nth-child(2), tr[data-loc="shanghai"] td:nth-child(2), tr[data-loc="guangzhou"] td:nth-child(2) { background: rgba(101,134,254,1) !important; color: white !important; } /*.SpeedTest_Table thead th,*/ /*.SpeedTest_Table tbody tr:first-child th,*/ /*.SpeedTest_Table tbody tr:first-child td {*/ /*padding: 10px;*/ /*}*/ .SpeedTest_Table thead tr:first-child th { text-align: left; border: 0 !important; } .SpeedTest_Table thead tr:first-child th:not(:empty) { /*border-bottom: 1px solid rgba(151,151,151,.2);*/ } .SpeedTest_Table th { font-weight: 500; } .SpeedTest_Table th, .SpeedTest_Table td { padding: 0 15px; white-space: nowrap; overflow: hidden; border: rgba(217,217,220,.3); border-style: solid; height: 3em; line-height: 3em; border-width: 1px; } .SpeedTest_Table th:first-child, .SpeedTest_Table td:first-child { text-align: left; position: relative; } .SpeedTest_Table tr td:first-child { text-indent: 1em; } /*.SpeedTest_Table td:first-child { padding-left: 1.6em; }*/ /*.SpeedTest_Table .col-border, .SpeedTest_Table tr :first-child {*/ .SpeedTest_Table tr:not(:last-child) { /*border-right: 1px solid #2d2d2d;*/ /*border-right: 1px solid rgba(151,151,151,.2);*/ } /*.SpeedTest_Table thead th {*/ /*background: #1d1d1d;*/ /*background: #D8D8D8;*/ /*color:#4B4B4B;*/ /*font-size: 10px;*/ /*font-weight: bold;*/ /*text-transform: uppercase;*/ /*opacity: .7;*/ /*}*/ .SpeedTest_Table thead th { padding: 15px 10px; } .SpeedTest_Table tbody { line-height: 30px; height: 30px; } .SpeedTest_Table tbody tr:nth-child(even) > * { /*background: #4d4d4d;*/ /*color: #fdfdfd;*/ } .SpeedTest_Table tr.loading :first-child::after, .SpeedTest_Table tr.pending :first-child::after, .SpeedTest_Table tr.loading :not(.pending):not(.loaded):not(:last-child):empty::after, .SpeedTest_Table tr.pending :not(.pending):not(.loaded):not(:last-child):empty::after { content: ''; background-image: url('https://su.ultrasite.com/170_a_2208_5d64d8a0.png'); background-size: 13px 13px; -webkit-animation: rotating 2s infinite linear; animation: rotating 2s infinite linear; /*filter: invert(1);*/ display: block; margin: auto; width: 13px; height: 13px; } .SpeedTest_Table tr[data-loc="chengdu"].pending :not(.pending):not(.loaded):not(:last-child):empty::after, .SpeedTest_Table tr[data-loc="hohhot"].pending :not(.pending):not(.loaded):not(:last-child):empty::after, .SpeedTest_Table tr[data-loc="beijing"].pending :not(.pending):not(.loaded):not(:last-child):empty::after, .SpeedTest_Table tr[data-loc="shanghai"].pending :not(.pending):not(.loaded):not(:last-child):empty::after, .SpeedTest_Table tr[data-loc="guangzhou"].pending :not(.pending):not(.loaded):not(:last-child):empty::after { filter: invert(1); } .SpeedTest_Table tr th:first-child::after, .SpeedTest_Table tr td:first-child::after { position: absolute; top: 0; bottom: 0; right: 10px; display: block; margin: auto; width: 13px; height: 13px; text-indent: 0; } /*.SpeedTest_Table tr.pending :last-child:empty,*/ .SpeedTest_Table tr .pending:empty { /*color: #888;*/ /*color: #ffffff55;*/ font-style: italic; } .SpeedTest_Table tr :nth-child(3).pending:empty { display: flex; } /*.SpeedTest_Table tr.pending :last-child:empty::before,*/ .SpeedTest_Table tr .pending:empty::before { content: 'waiting'; } /*.SpeedTest_Table tr.pending :last-child:empty::after,*/ .SpeedTest_Table tr .pending:empty::after { content: '…'; overflow: hidden; display: block; float: right; -webkit-animation: increasewidth 1s steps(4, end) infinite; animation: increasewidth 1s steps(4, end) infinite; } .SpeedTest_Table tr.loaded :empty::after, .SpeedTest_Table tr td.loaded:empty::after { content: 'N/A'; } .SpeedTest_Table tr td.loaded:empty::before { content: none; } /*.SpeedTest_Table tbody tr :last-child:empty::after*/ .SpeedTest_Table tbody tr:first-child :empty::after, .SpeedTest_Table tbody tr :nth-of-type(9):empty::after { content: '-'; } .SpeedTest_Table tr.error :first-child::after { color: #EE4129; font-family: MaterialIcons; content: 'error'; height: 1em; line-height: 1em; } .SpeedTest_Table tr:not(.error).loaded td:first-child:hover::after { color: inherit; font-family: MaterialIcons; /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ /*content: 'insert_chart';*/ content: 'refresh'; /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ cursor: pointer; height: 1em; line-height: 1em; } .SpeedTest_Table tr:not(.error).loaded td:nth-child(2):hover { position: relative; } /*.SpeedTest_Table tr:not(.error).loaded td:nth-child(2)::after { } */.SpeedTest_Table tr:not(.error).loaded td:not([data-slow]):nth-child(2):hover::after { color: inherit; font-family: MaterialIcons; /* content: 'insert_chart'; */ content: 'assessment'; cursor: pointer; height: 1em; line-height: 1em; position: absolute; top: 0; bottom: 0; right: 10px; display: block; margin: auto; width: 13px; height: 13px; transform: rotateZ(90deg); margin-top: 6px; } /*.SpeedTest_Table tr:not(.error).loaded td:first-child:hover::before {*/ /*color: #fff;*/ /*background-color: #1d1d1d;*/ /*font-family: Roboto;*/ /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ /*content: 'insert_chart';*/ /*content: 'Rerun Location';*/ /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ /*cursor: pointer;*/ /*height: 30px;*/ /*line-height: 30px;*/ /*border-radius: 4px;*/ /*position: absolute;*/ /*left: 100%;*/ /*padding: 0 10px;*/ /*font-size: 11px;*/ /*font-weight: bold;*/ /*}*/ .SpeedTest_Table tr td[data-slow=true] { position: relative; } .SpeedTest_Table tr.loaded td[data-slow=true]:nth-child(2)::after, .SpeedTest_Table tr td.loaded[data-slow=true]:nth-child(2)::after { content: 'flash_on'; color: #ffdd00; } .SpeedTest_Table tr.loaded td[data-slow=true]::after, .SpeedTest_Table tr td.loaded[data-slow=true]::after { color: #dd2222; font-family: MaterialIcons; content: 'warning'; cursor: pointer; height: 1em; line-height: 1em; position: absolute; top: 0; bottom: 0; right: 10px; display: block; margin: auto; width: 13px; height: 13px; margin-top: 6px; } .SpeedTest_Table tbody tr.fade td:not(:empty) { color: #999; } .SpeedTest_Table .waterfallIcon { float: right; line-height: inherit; margin-right: .5em; cursor: pointer; font-size: 14px; transform: rotate(90deg); } .SpeedTest_Table td:not(:hover) .waterfallIcon { display: none; } /* fix first column */ .SpeedTest_Wrapper { position: relative; } .SpeedTest_Scroll { overflow-x: auto; padding-left: 160px; } .SpeedTest_Table tr th:first-child, .SpeedTest_Table tr td:first-child { position: absolute; z-index: 1; transform: translateZ(1px); -moz-transform: translateZ(1px); -webkit-transform: translateZ(1px); left: 0; width: 160px; background: white; /*box-shadow: 5px 5px 10px 0 rgba(0,0,0,.03);*/ box-shadow: 6px 8px 12px 0 rgba(0,0,0,.05); } .SpeedTest_Table tr:not([data-loc]):not(:first-child) th:after { content: ''; position: absolute; background: #F7FAFC; height: 100%; left: 100%; width: 50%; } .SpeedTest_Table tr:not([data-loc]):not(:first-child) td:empty { background: #F7FAFC; border: none; } .SpeedTest_Table tr:not([data-loc]):not(:first-child) th { background: #F7FAFC; overflow: visible; border: none; box-shadow: none; } .SpeedTest_Table thead tr:last-child :first-child { /*border-bottom: 1px solid #1d1d1d;*/ /*border-bottom: 1px solid rgba(151,151,151,.2);*/ } .SpeedTest_Table tbody tr:not(:first-child) th+td:empty::after, .SpeedTest_Table thead th:empty::after { content: 'notey'; color: transparent; position: static; height: auto; } /* result colour coding */ .SpeedTest_Table tbody .highlight-yellow { position: relative; color: transparent; } .SpeedTest_Table tbody .highlight-yellow::after { content: attr(data-value); position: absolute; /*background-color: #F8E71C;*/ color: #000; padding: 0 15px; height: 100%; top: 0; /*right: 5px;*/ /*background-color: rgba(255,183,39,.5);*/ background-color: #ffda92; left: 0; right: 0; display: flex; align-items: center; } @-webkit-keyframes rotating { from{ -webkit-transform: rotate(0deg); transform: rotate(0deg); } to{ -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes rotating { from{ -webkit-transform: rotate(0deg); transform: rotate(0deg); } to{ -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @-webkit-keyframes increasewidth { from{ width: 0; margin-right: 1em; } to{ width: 1em; margin-right: 0; } } @keyframes increasewidth { from{ width: 0; margin-right: 1em; } to{ width: 1em; margin-right: 0; } } </style></div><a class="ModularPage_Component ModularPage_Component_linkText CodeTestLink" target="_blank" data-component-key="jzvz8d1a" id="code-test-link">Run a Code Test on this site &gt;</a></div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row" data-component-key="jzw1duw0" id=""><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--66 _hide" data-component-key="jzw1duw1" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Title Title--H3" data-component-key="jzw1eipv" id="">Download your Results</h1><div class="ModularPage_Component ModularPage_Component_p" data-component-key="jzw1f1ln" id="">Please enter your email to download your results and learn more about how to optimise your site.</div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="jzw1fm48" id="">// download results form //</div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col __hide" data-component-key="jzw1e3sx" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Title Title--H3" data-component-key="jzw1ee70" id="">Download Your Results</h1><div class="ModularPage_Component ModularPage_Component_p Paragraph" data-component-key="jzw1f9yb" id="">Please enter your email to download your results and learn more about how to optimise your site.</div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col" data-component-key="ktnuqlox" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Title Title--H3" data-component-key="ktnuqloz" id="">Share this test!</h1><div class="ModularPage_Component ModularPage_Component_p Paragraph" data-component-key="ktnuqlp0" id="">Would your friends and colleagues find this useful?</div><div class="ModularPage_Component ModularPage_Component_div SocialShare" data-component-key="ktnuqlp1" id=""><div class="ModularPage_Component ModularPage_Component_socialShare Symbol_Symbol_SocialMediaShare" data-sharetitle="undefined" data-shareurl="undefined" data-social="facebook" data-component-key="ktnuqlp2" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlp3" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlp4" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5343_b0f17a46.png" data-component-key="ktnuqlp5" id=""></div></div></div><div class="ModularPage_Component ModularPage_Component_socialShare Symbol_Symbol_SocialMediaShare" data-sharetitle="undefined" data-shareurl="undefined" data-social="twitter" data-component-key="ktnuqlp6" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlp7" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlp8" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5345_2a2f96b2.png" data-component-key="ktnuqlp9" id=""></div></div></div><div class="ModularPage_Component ModularPage_Component_socialShare Symbol_Symbol_SocialMediaShare" data-sharetitle="undefined" data-shareurl="undefined" data-social="linkedin" data-component-key="ktnuqlpa" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlpb" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlpc" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5344_a09b339c.png" data-component-key="ktnuqlpd" id=""></div></div></div><div class="ModularPage_Component ModularPage_Component_socialShare SocialMediaShare" data-sharetitle="undefined" data-shareurl="undefined" data-social="email" data-component-key="ktnuqlpe" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlpf" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper" data-component-key="ktnuqlpg" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5342_c60ddc69.png" data-component-key="ktnuqlph" id=""></div></div></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div MainSection_About" data-component-key="ktjuahk6" id=""><h3 class="ModularPage_Component ModularPage_Component_h3 MainSubheading" data-component-key="ktjuat2z" id="">About the Speed Test</h3><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjunraj" id="">Non-Chinese Websites load an average of 5-8x slower in China. This is the combined result of a site's hosting infrastructure, code-level compatibility with China's internet (e.g. blocked resources), the optimisation, or lack thereof, of its resources, and China networks.</div></div><div class="ModularPage_Component ModularPage_Component_div MainSection_Benefits" data-component-key="ktjuppwg" id="benefits-pretest"><h3 class="ModularPage_Component ModularPage_Component_h3 MainSubheading" data-component-key="ktjupvz9" id="">Benefits of Having a Faster Site</h3><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid" data-component-key="ktjupzpz" id=""><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell" data-component-key="ktjuvx5m" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper BenefitsGrid_Cell_Icon" data-component-key="ktjuwiqx" id=""><img class="ModularPage_Component ModularPage_Component_img" height="32px" width="32px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7654_c9ce9ea4.png" data-component-key="ktjuwiqz" id=""></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell_Content" data-component-key="ktjuw82g" id=""><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjv7hki" id="">Enhancing Your Visitor Experience. A positive visitor experience is directly correlated with higher user engagement, reduced bounce rates, and increased conversions.</div></div></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell" data-component-key="ktjvf3vh" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper BenefitsGrid_Cell_Icon" data-component-key="ktjvf3vi" id=""><img class="ModularPage_Component ModularPage_Component_img" height="32px" width="32px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7655_eecbf912.png" data-component-key="ktjvf3vj" id=""></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell_Content" data-component-key="ktjvf3vk" id=""><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjvf3vl" id="">Increasing Conversions. Visitors who don't find what they're looking for, are likely to leave your site to search elsewhere.Optimize performance to optimize for search visibility, engagement and ultimately conversions.</div></div></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell" data-component-key="ktjvf7cx" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper BenefitsGrid_Cell_Icon" data-component-key="ktjvf7cy" id=""><img class="ModularPage_Component ModularPage_Component_img" height="32px" width="32px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7656_a5be7f48.png" data-component-key="ktjvf7cz" id=""></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell_Content" data-component-key="ktjvf7d0" id=""><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjvf7d1" id="">Reducing Bounce Rates. Over 40% of consumers will leave a website that takes more than 3 seconds to load. Because 90% of search happens on mobile in China - making sure that your website loads quickly, and completely, on devices that are more network and bandwidth sensitive is especially critical to a business' website results.</div></div></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell" data-component-key="ktjvf9zn" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper BenefitsGrid_Cell_Icon" data-component-key="ktjvf9zp" id=""><img class="ModularPage_Component ModularPage_Component_img" height="32px" width="32px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7657_7b5faaf4.png" data-component-key="ktjvf9zq" id=""></div><div class="ModularPage_Component ModularPage_Component_div BenefitsGrid_Cell_Content" data-component-key="ktjvf9zr" id=""><div class="ModularPage_Component ModularPage_Component_p" data-component-key="ktjvf9zs" id="">Improving Your Baidu SEO. Poor performance compromises search visibility. While various factors impact SEO - Page Speed impacts your bounce rate, page views and other user experience metrics listed that are factored into both Google and Baidu's Search Ranking Algorithms.</div></div></div></div><a class="ModularPage_Component ModularPage_Component_linkText Link--blue" target="" data-component-key="ktjvz50s" id="">Learn more about Web Performance &gt;</a></div><div class="ModularPage_Component ModularPage_Component_div MainSection_Benefits" data-component-key="ktnyqpo2" id="benefits-posttest"><div class="ModularPage_Component ModularPage_Component_div" data-component-key="ktnyoq53" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 MainSubheading __centerBold" data-component-key="ktnyoq54" id=""><br>Benefits of a Faster Site</h1><div class="ModularPage_Component ModularPage_Component_div PageContent__Row BenefitsRow" data-component-key="ktnyoq55" id=""><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--thinPadding" data-component-key="ktnyoq56" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper ImageIconWrapper" data-component-key="ktnyoq57" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_5474_c9c19f1c.png" data-component-key="ktnyoq58" id=""></div><div class="ModularPage_Component ModularPage_Component_p BenefitsText" data-component-key="ktnyoq59" id="">Enhanced User Experience</div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--thinPadding" data-component-key="ktnyoq5a" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper ImageIconWrapper" data-component-key="ktnyoq5b" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_5476_474e98ff.png" data-component-key="ktnyoq5c" id=""></div><div class="ModularPage_Component ModularPage_Component_p BenefitsText" data-component-key="ktnyoq5d" id="">Reduced bounce Rates</div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--thinPadding" data-component-key="ktnyoq5e" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper ImageIconWrapper" data-component-key="ktnyoq5f" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_5475_8be49861.png" data-component-key="ktnyoq5g" id=""></div><div class="ModularPage_Component ModularPage_Component_p BenefitsText" data-component-key="ktnyoq5h" id="">Increased<div>Conversions</div></div></div><div class="ModularPage_Component ModularPage_Component_div PageContent__Row__Col PageContent__Row__Col--thinPadding" data-component-key="ktnyoq5i" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper ImageIconWrapper" data-component-key="ktnyoq5j" id=""><img class="ModularPage_Component ModularPage_Component_img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_5477_81219178.png" data-component-key="ktnyoq5k" id=""></div><div class="ModularPage_Component ModularPage_Component_p BenefitsText" data-component-key="ktnyoq5l" id="">Improved<div>Baidu SEO</div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div ToolsPageRows _hide" data-component-key="ktnypt6i" id=""><div class="ModularPage_Component ModularPage_Component_div ToolsPageRows__Col" data-component-key="ktnypt6j" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Title Title--H4" data-component-key="ktnypt6k" id="">Notes</h1><div class="ModularPage_Component ModularPage_Component_p Paragraph_3" data-component-key="ktnypt6l" id="">Note that a slight deviation (1-3%) in the # of resources is expected from location-to-location. As network traffic and congestion is continually changing, be sure to run this test a few times to establish more accurate results. </div></div><div class="ModularPage_Component ModularPage_Component_div ToolsPageRows__Col" data-component-key="ktnypt6m" id=""><h1 class="ModularPage_Component ModularPage_Component_h1 Title Title--H4" data-component-key="ktnypt6n" id="">Give Feedback</h1><div class="ModularPage_Component ModularPage_Component_p Paragraph_4" data-component-key="ktnypt6o" id="">Please write an email to info@chinafy.com, and we’ll have a member of our team get back to you shortly.</div><div class="ModularPage_Component ModularPage_Component_embed" data-component-key="ktnypt6p" id=""></div></div><div class="ModularPage_Component ModularPage_Component_div ToolsPageRows__Col" data-component-key="ktnypt6q" id=""><div class="ModularPage_Component ModularPage_Component_div PagerContentItem" data-component-key="ku5e1lxy" id="pagerContentItem"><h3 class="ModularPage_Component ModularPage_Component_h3 PagerContentItemTitle" data-component-key="ku5e1lxz" id="pagerContentItemTitle">FAQs</h3><a class="ModularPage_Component ModularPage_Component_linkBlock PagerContentItemCollapse" target="" data-component-key="ku5e1ly0" id="pagerContentItemCollapse"><i class="ModularPage_Component ModularPage_Component_icon icofont icofont-minus" data-icontext="" data-iconclassname="icofont icofont-minus" data-component-key="ku5e1ly1" id=""></i></a><a class="ModularPage_Component ModularPage_Component_linkBlock PagerContentItemCollapse" target="" data-component-key="ku5e1ly2" id="pagerContentItemExpand"><i class="ModularPage_Component ModularPage_Component_icon icofont icofont-plus" data-icontext="" data-iconclassname="icofont icofont-plus" data-component-key="ku5e1ly3" id=""></i></a><div class="ModularPage_Component ModularPage_Component_p PagerContentItemText" data-component-key="ku5e1ly4" id="pagerContentItemText"><b>What is the impact of on-page resource optimisation on my website? </b><div><br></div><div>Hosting is part of the solution, but does not address other variables that could cause your site to load slowly or incompletely. Even if a company acquires an ICP license (an onshore business entity is required to host a site in China), their site may still require resource modifications within their site to perform optimally in China. </div><div><br></div><div>If the option is available to host onshore, then that is still preferable over offshore hosting. However, for those hosted offshore, your choice of Hosting and Networks can nonetheless still have a 2-8 second impact on page loading times in China. </div><div><br></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div ToolsPageRows__Col" data-component-key="ktnypt6t" id=""></div></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div ToolPagesLink__Container" data-component-key="k0g3fd6u" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren _symbolRoot Symbol_Symbol_Symbol_GetStartedSection" data-symbol-id="194" data-component-key="kgkoujdz" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_PageContent__Row" data-symbol-id="194" data-component-key="kgkouje0" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_PageContent__Row__Col Symbol_Symbol_Symbol_PageContent__Row__Col--66" data-symbol-id="194" data-component-key="kgkouje1" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Symbol_Symbol_Title Symbol_Symbol_Symbol_Title--H3 Symbol_Symbol_Symbol_Title--light Symbol_Symbol_Symbol_Anim__FadeInOnScroll Symbol_Symbol_Symbol_ParagraphTitle" data-symbol-id="194" data-component-key="kgkouje2" id="">Make your website work in China</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_Symbol_Symbol_Anim__FadeInOnScroll" data-symbol-id="194" data-component-key="kgkouje3" id=""><div>Fill out the form and one of our Chinafy team members will reach out to you within 1 business day to book an initial call or with a plan for next steps.</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_spacer" data-symbol-id="194" data-component-key="kgkouje4" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted_Bullets" data-symbol-id="194" data-component-key="m10cnhop" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted_BulletItem" data-symbol-id="194" data-component-key="m10dq11y" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_GetStarted_CheckMark ultra-material-icons ultra-material-icons--check" data-icontext="check" data-iconclassname="ultra-material-icons ultra-material-icons--check" data-symbol-id="194" data-component-key="m10dqn49" id="">check</i><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10cnpni" id="">30%-40% faster compared to using a CDN alone.</span></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted_BulletItem" data-symbol-id="194" data-component-key="m10ds48w" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_GetStarted_CheckMark ultra-material-icons ultra-material-icons--check" data-icontext="check" data-iconclassname="ultra-material-icons ultra-material-icons--check" data-symbol-id="194" data-component-key="m10ds48x" id="">check</i><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10ds48y" id="">Verifiable results in just 2 weeks, instead of 1-2 years.</span></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted_BulletItem" data-symbol-id="194" data-component-key="m10dscs9" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_GetStarted_CheckMark ultra-material-icons ultra-material-icons--check" data-icontext="check" data-iconclassname="ultra-material-icons ultra-material-icons--check" data-symbol-id="194" data-component-key="m10dscsa" id="">check</i><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dscsb" id="">Little to no action required from your IT teams.</span></div></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_Symbol_Symbol_GetStarted--Illustration __hide" data-symbol-id="194" data-component-key="ko3z4rv0" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren symbol_symbol_getstarted_llustration" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7159_5b4e97b6.png" data-symbol-id="194" data-component-key="ko3z4rv1" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_GetStarted--background_wrapperr" data-symbol-id="194" data-component-key="ko3zb2n8" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_GetStarted--background" data-symbol-id="194" data-component-key="ko3zct64" id=""></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_spacer" data-symbol-id="194" data-component-key="m10dxkjf" id=""></div><div class="ModularPage_Component ModularPage_Component_rows _symbolChildren" data-symbol-id="194" data-component-key="m10dy7do" id=""><div class="ModularPage_Component ModularPage_Component_container _symbolChildren" data-symbol-id="194" data-component-key="m10dy7dq" id=""><div class="ModularPage_Component ModularPage_Component_slider _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-slider" data-arrow="1" data-swipe="1" data-loop="1" data-auto-play-period="5000" data-auto-play="1" data-orientation="horizontal" data-animation-duration="300" data-animation-timing-function="ease" data-animation-type="slide" data-symbol-id="194" data-component-key="m10dy7dr" id=""><div class="ModularPage_Component ModularPage_Component_slides _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-wrapper" data-symbol-id="194" data-component-key="m10dy7ds" id=""><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren Symbol_GSFORM_Symbol_Symbol_Slide" data-symbol-id="194" data-component-key="m10dy7dt" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7du" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7dv" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7ec" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7ed" id="">&quot;Chinafy has made it possible for us to be sure that our web visitors in China have the same good experience as all our other visitors in the rest of the world.&quot;</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7dy" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10dy7e1" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image" data-symbol-id="194" data-component-key="m10dy7e2" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image--img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_8695_5c34eb87.jpg" data-symbol-id="194" data-component-key="m10dy7e3" id=""></div></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7dw" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_8694_56638eb7.png" data-symbol-id="194" data-component-key="m10dy7dx" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7ee" id="">Michela Nalin Francek, Marketing Manager for Nolato</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren" data-symbol-id="194" data-component-key="m10dy7eg" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7eh" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7ei" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7ez" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7f0" id="">&quot;Over 1 million engineers use SnapEDA each year all over the world. We were attracted to Chinafy's service because of how easy they made it to support the Chinese market.&quot;</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7el" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10dy7eo" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image" data-symbol-id="194" data-component-key="m10dy7ep" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image--img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7581_d5d79956.jpg" data-symbol-id="194" data-component-key="m10dy7eq" id=""></div></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7ej" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7578_1d431181.png" data-symbol-id="194" data-component-key="m10dy7ek" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7f1" id="">Natasha Baker, CEO &amp; Founder of SnapEDA</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren" data-symbol-id="194" data-component-key="m10dy7f3" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7f4" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7f5" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7fm" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7fn" id="">We are very happy with working with Chinafy. They went above and beyond to ensure we help MIT Professional Education deliver world-class online education in China.</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7f8" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10dy7fb" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image" data-symbol-id="194" data-component-key="m10dy7fc" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-image--img" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_8699_fc08ebde.jpg" data-symbol-id="194" data-component-key="m10dy7fd" id=""></div></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7f6" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_8700_6106f972.png" data-symbol-id="194" data-component-key="m10dy7f7" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7fo" id="">Ignacio Cerro, CFO, Global Alumni for MIT Professional Education</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren" data-symbol-id="194" data-component-key="m10dy7fq" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7fr" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7fs" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7fv" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7fw" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7fx" id="">&quot;Consistency is crucial for us. <br>Chinafy fits the bill of what we were looking for.&quot;</div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic __noPhoto" data-symbol-id="194" data-component-key="m10ewu1x" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10ewu1y" id=""></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7ft" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7575_a5b132a3.png" data-symbol-id="194" data-component-key="m10dy7fu" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7fy" id="">Jonathan Rhodes, Marketing Technology Manager of Registrar Corp</span></div></div></div><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren" data-symbol-id="194" data-component-key="m10dy7g0" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7g1" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7g2" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7g5" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7g6" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7g7" id="">&quot;The process was super easy and I'm really glad we selected your team. The experience has been beyond my expectations.&quot;</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic __noPhoto" data-symbol-id="194" data-component-key="m10eyzir" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10eyzis" id=""></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7g3" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7580_a2372b4b.png" data-symbol-id="194" data-component-key="m10dy7g4" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7g8" id="">Nicolas Duchesne-Lafoest, Product Marketing Manager </span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_slide _symbolChildren" data-symbol-id="194" data-component-key="m10dy7ga" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-block" data-symbol-id="194" data-component-key="m10dy7gb" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-inner" data-symbol-id="194" data-component-key="m10dy7gc" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic" data-symbol-id="194" data-component-key="m10dy7gf" id=""></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-content" data-symbol-id="194" data-component-key="m10dy7gg" id=""><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-quote" data-symbol-id="194" data-component-key="m10dy7gh" id="">&quot;Chinafy went above and beyond to help me produce my event. I'm not sure I would have been successful without them. The client was elated that we managed to fulfill the request to live-stream into China so quickly.&quot;</div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphic __noPhoto" data-symbol-id="194" data-component-key="m10f01pv" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-graphics-inner" data-symbol-id="194" data-component-key="m10f01pw" id=""></div><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-logo" data-symbol-id="194" data-component-key="m10dy7gd" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="" loading="lazy" data-src="https://su.ultrasite.com/170_a_7579_ad88bdbb.png" data-symbol-id="194" data-component-key="m10dy7ge" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GSFORM_Symbol_Symbol_testimony-attribute" data-symbol-id="194" data-component-key="m10dy7gi" id="">Kevin Denham, Technical Director at ADM Productions</span></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_sliderNavBar _symbolChildren slider-horizontal" data-symbol-id="194" data-component-key="m10dy7gk" id=""><div data-slide-idx="0" style="margin:0 10px" class="navItem navItem-round navItem-shadow navItem-selected"></div><div data-slide-idx="1" style="margin:0 10px" class="navItem navItem-round navItem-shadow"></div><div data-slide-idx="2" style="margin:0 10px" class="navItem navItem-round navItem-shadow"></div><div data-slide-idx="3" style="margin:0 10px" class="navItem navItem-round navItem-shadow"></div><div data-slide-idx="4" style="margin:0 10px" class="navItem navItem-round navItem-shadow"></div><div data-slide-idx="5" style="margin:0 10px" class="navItem navItem-round navItem-shadow"></div></div><div class="ModularPage_Component ModularPage_Component_sliderLeftArrow _symbolChildren Symbol_testimony-slider-arrow slider-horizontal" data-symbol-id="194" data-component-key="m10dy7gl" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren fa-icon fa-icon--angleleft" data-icontext="" data-iconclassname="fa-icon fa-icon--angleleft" data-symbol-id="194" data-component-key="m10dy7gm" id=""></i></div><div class="ModularPage_Component ModularPage_Component_sliderRightArrow _symbolChildren Symbol_testimony-slider-arrow slider-horizontal" data-symbol-id="194" data-component-key="m10dy7gn" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren fa-icon fa-icon--angleright" data-icontext="" data-iconclassname="fa-icon fa-icon--angleright" data-symbol-id="194" data-component-key="m10dy7go" id=""></i></div><div style="display: none;" class="ModularPage_Component ModularPage_Component_sliderTabMenu _symbolChildren slider-horizontal" data-symbol-id="194" data-component-key="m10dy7gp" id=""><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="0" data-symbol-id="194" data-component-key="m10dy7gq" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7gr" id="">Tab 1</span></div><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="1" data-symbol-id="194" data-component-key="m10dy7gs" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7gt" id="">Tab 2</span></div><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="2" data-symbol-id="194" data-component-key="m10dy7gu" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7gv" id="">Tab 3</span></div><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="3" data-symbol-id="194" data-component-key="m10dy7gw" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7gx" id="">Tab 4</span></div><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="4" data-symbol-id="194" data-component-key="m10dy7gy" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7gz" id="">Tab 5</span></div><div class="ModularPage_Component ModularPage_Component_sliderTabLink _symbolChildren" data-slide-idx="5" data-symbol-id="194" data-component-key="m10dy7h0" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="m10dy7h1" id="">Tab 6</span></div></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_PageContent__Row__Col Symbol_Symbol_Symbol_PageContent__Row__Col--33" data-symbol-id="194" data-component-key="kgkouje6" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStartedForm" data-symbol-id="194" data-component-key="kgkouje7" id="gsFormNew"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStartedOverlay" data-symbol-id="194" data-component-key="kgkouje8" id="gsOverlay"></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStartedInner" data-symbol-id="194" data-component-key="kgkouje9" id="gsInner"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Body _mobile" data-symbol-id="194" data-component-key="kgkoujee" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Form" data-symbol-id="194" data-component-key="kgkoujef" id="gsFormShow"><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkoujeg" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel _header" data-symbol-id="194" data-component-key="kgkoujeh" id=""><b>To start, please share a bit more about you.</b></span></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="m0vx2you" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="194" data-component-key="m0vx2yov" id="">Which website do you want to Chinafy?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="m0vx2yow" id=""><input placeholder="Enter a web page URL (e.g. www.website.com)" pattern="(https?:)?//.*" required="true" type="url" class="GetStarted__FormInput" name="url"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkoujej" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="194" data-component-key="kgkoujek" id="">Tell us your name?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkoujel" id=""><input placeholder="e.g. Jane Smith" required="true" type="text" class="GetStarted__FormInput" name="name"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkoujem" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="194" data-component-key="kgkoujen" id="">What best describes your company role?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkoujeo" id=""><select required="true" class="GetStarted__FormInput" name="role"> <option value="Engineer/Site Reliability">Engineer/Site Reliability</option> <option value="Marketing & Growth">Marketing &amp; Growth</option> <option value="Data Scientist">Data Scientist</option> <option value="Business Owner">Business Owner</option> <option value="Agency">Agency</option> <option value="Other">Other</option> </select><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkpigbk" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="194" data-component-key="kgkpigbl" id="">What's your Work Email Address?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkpigbm" id=""><input placeholder="e.g. name@company.com" required="true" type="email" class="GetStarted__FormInput" name="email"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="khvvcrva" id="enterprise-field"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel" data-symbol-id="194" data-component-key="khvvcrvc" id="">What would you like to discuss?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="khvvcrvd" id=""><textarea placeholder="Share more aout how you came across us, questions you have about our Enterprise plans or anything else you'd like to share with us." class="GetStarted__FormInput" name="additionalInfo"></textarea><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow _hide" data-symbol-id="194" data-component-key="kgkoujep" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__FormLabel Symbol___clickable" data-symbol-id="194" data-component-key="kgkoujeq" id="gsFormDiscountLabel">Have a discount code?</span><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkoujer" id=""><input maxlength="50" style="display:none;" placeholder="" type="text" class="GetStarted__FormInput" name="discountCode"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkoujes" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__Agreement" data-symbol-id="194" data-component-key="kh5vyh4b" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="194" data-component-key="kh5vyxz7" id="">By clicking 'Get Started', I also agree to Chinafy's </span><a href="/legal/terms-of-service" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol__inlineTextLink" target="_blank" data-symbol-id="194" data-component-key="ll346o3e" id="">Terms of Service</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="194" data-component-key="kh5w4tg1" id=""> &amp; </span><a href="/legal/privacy-policy" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol__inlineTextLink" target="_blank" data-symbol-id="194" data-component-key="kh5w61ds" id="">Privacy Policy</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol__inlineText" data-symbol-id="194" data-component-key="kh5w6xg0" id="">.</span></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkoujeu" id=""><input maxlength="50" style="display:none;" placeholder="" type="text" class="GetStarted__FormInput" name="discountCode"><label class="GetStarted__FormInput__Message __error"></label></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_GetStarted__FormRow" data-symbol-id="194" data-component-key="kgkoujev" id=""><a class="ModularPage_Component ModularPage_Component_button _symbolChildren Symbol_GetStarted__FormSubmit" href="javascript:;" target="" data-symbol-id="194" data-component-key="kgkoujew" id="gsSubmit"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="kgkoujex" id="">Get Started</span></a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_GetStarted__ErrorMessage" data-symbol-id="194" data-component-key="kgkoujey" id="gsErrorMessage"></span></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="ko2s0s8j" id=""><input placeholder="" required="false" type="hidden" class="GetStarted__FormInput" name="additionalInfo"><label style="display:none;"></label></div></div><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_GetStarted__Close ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-symbol-id="194" data-component-key="kglv2os0" id="gsClose">close</i><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="194" data-component-key="kgkoujez" id="gsCompleteShow"><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Symbol_Symbol_Title Symbol_Symbol_Symbol_Title--H3 Symbol_Symbol_Symbol_Title--light Symbol_Symbol_Symbol_Anim__FadeInOnScroll Symbol_Symbol_Symbol_ParagraphTitle" data-symbol-id="194" data-component-key="kgkpmi12" id="">Thanks for getting in touch!</span><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_Symbol_Symbol_Anim__FadeInOnScroll" data-symbol-id="194" data-component-key="kgkpnb7g" id="">One of our China experts will be in touch with you via email within the next 24 hours with<br><br>1 - Expected post-Chinafy results<div>2 - Your Custom Plan</div><div>3 - Next steps.</div><div><br></div><div>P.S. Make sure to check your promotions inbox in case our message lands there.</div><div><br></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Symbol_Anim__FadeInOnScroll" data-symbol-id="194" data-component-key="kgkpyuaz" id=""><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="kgkpyx24" id="">Please feel free to check out our </span><a href="/case-studies" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_GetStarted__OutboundLink" target="" data-symbol-id="194" data-component-key="kgkoujf1" id="">case studies</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="kgkq0jbr" id=""> or </span><a href="/blog" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_GetStarted__OutboundLink" target="" data-symbol-id="194" data-component-key="kgkoujf2" id="">blog</a><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="194" data-component-key="kgkq129o" id=""> in the meantime.</span></div></div></div></div><div class="ModularPage_Component ModularPage_Component_embed _symbolChildren" data-symbol-id="194" data-component-key="kgkoujf5" id=""><span data-get-started="inline" class="__gs_anchor">[[embed: get started form inline type]]</span> <style> .__gs_anchor { display: none; } body.loading, body.loading * { cursor: wait !important; } .ModularPageEditor_Page .__gs_anchor, .ModularPageEditor_Page #gsFormNew #gsHeader { display: block; } #gsFormNew.__overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100; animation: showGSForm .5s 1 ease; } /* gsform animation */ /*#gsFormNew.__overlay:not(.__show){display:none;}*/ #gsFormNew.__overlay #gsOverlay { transition: all .5s ease .25s; } #gsFormNew.__overlay.__show #gsInner { position: absolute; top: 50%; right: 50%; transform: scale(1) translate(50%, -50%); opacity: 1; transition: all .8s cubic-bezier(0.22, 0.61, 0.36, 1); } #gsFormNew.__overlay:not(.__show) { display: block !important; pointer-events: none; } #gsFormNew.__overlay:not(.__show) #gsOverlay { opacity: 0; pointer-events: none; } #gsFormNew.__overlay:not(.__show) #gsInner { position: absolute; top: 20px; right: 40px; transform-origin: top right; transform: scale(0) translate(0%, 0%); opacity: 0; transition: all .8s cubic-bezier(0.22, 0.61, 0.36, 1); } /*#gsFormNew #gsHeader{display:none;}*/ #gsFormNew.__overlay #gsOverlay { display: block; z-index: 100; } #gsFormNew.__overlay #gsHeader { display: block; } #gsFormNew.__overlay #gsInner { z-index: 101; } #gsFormNew input, #gsFormNew select, #gsFormNew textarea { width: 100%; border: 1px solid #ddd; border-radius: 4px; padding: 16px 8px; font-size: 14px; } #gsFormNew input+label, #gsFormNew select+label, #gsFormNew textarea+label { font-size: 10px; } #gsFormNew input+label.__error, #gsFormNew select+label.__error, #gsFormNew textarea+label.__error { color: #EE4129; } @keyframes showGSForm { from { opacity: 0; } to { opacity: 1; } } </style> <script> window.addEventListener('DOMContentLoaded', function () { var SUBMIT_API = 'https://sites.chinafy.com/api2/sitetest/add'; var SUBMIT_SOURCETYPE = 2; var OVERLAY_CLS = '__overlay'; var GSForm = (function () { function f(ct) { if (!ct) return console.warn('Form element not found.'); if (ct.dataset.rendered) return console.warn('form already rendered'); this.formCt = ct; var typeCt = ct.querySelector('[data-get-started]'); this.type = typeCt.getAttribute('data-get-started'); this.inputs = ct.querySelectorAll('input,select,textarea'); this.enterpriseField = ct.querySelector('#enterprise-field'); this.overlay = ct.querySelector('#gsOverlay'); this.submitButton = ct.querySelector('#gsSubmit'); this.discountLabel = ct.querySelector('#gsFormDiscountLabel'); this.closeButton = ct.querySelector('#gsClose');//'i[data-icontext="close"]'); this.errorMessageCt = ct.querySelector('#gsErrorMessage'); if (!this.submitButton || !this.closeButton || this.inputs.length == 0) return console.warn('Critical elemenst not found.'); this.init(); this.render(); } f.prototype.init = function () { this.addListeners(); this.formCt.dataset.rendered = true; if (this.enterpriseField) { var isEnterprisePage = location.pathname.indexOf('/enterprise') >= 0; this.enterpriseField.style.display = isEnterprisePage ? '' : 'none'; } }; f.prototype.addListeners = function () { this.overlay && this.overlay.addEventListener('click', this.handleClickClose.bind(this)); this.closeButton && this.closeButton.addEventListener('click', this.handleClickClose.bind(this)); this.submitButton && this.submitButton.addEventListener('click', this.handleSubmitForm.bind(this)); this.discountLabel && this.discountLabel.addEventListener('click', this.handleClickDiscountLabel.bind(this)); for (var i = 0, input; input = this.inputs[i]; i++) { var eventType = input.type == 'url' ? 'change' : 'input'; input.addEventListener(eventType, this.handleInputChange.bind(this)); input.addEventListener('focus', (function () { if (!this.formFirstFocused) { window.gtag && window.gtag('event', 'Get Started Form Focused', { 'additional_info': this.additionalInfo, }); this.formFirstFocused = true; } }).bind(this)); } }; f.prototype.render = function () { switch (this.type) { case 'popup': $(this.formCt).addClass(OVERLAY_CLS); this.closePopup(); break; case 'inline': default: this.closeButton.style.display = 'none'; break; } this.showForm(); }; f.prototype.renderErrorMessage = function (message) { this.errorMessageCt.textContent = message; }; /* ui actions */ f.prototype.showPopup = function (domain, additionalInfo) { this.additionalInfo = additionalInfo || ''; window.gtag && window.gtag('event', 'Get Started Form Popup Open', { 'additional_info': this.additionalInfo, }); this.showForm(); $(this.formCt).addClass('__show').removeClass('__hide'); if (domain) { for (var i = 0, input; input = this.inputs[i]; i++) { if (input.name == 'url') { input.value = domain; break; } } } if (additionalInfo) { for (var i = 0, input; input = this.inputs[i]; i++) { if (input.name == 'additionalInfo') { input.value = additionalInfo; break; } } } }; f.prototype.closePopup = function () { $(this.formCt).removeClass('__show'); }; f.prototype.showForm = function () { $(this.formCt.querySelector('#gsInner')).show(); $(this.formCt.querySelectorAll('#gsFormShow')).show(); $(this.formCt.querySelectorAll('#gsCompleteShow')).hide(); }; f.prototype.showComplete = function () { $(this.formCt.querySelector('#gsHeader')).show(); $(this.formCt.querySelectorAll('#gsFormShow')).hide(); $(this.formCt.querySelectorAll('#gsCompleteShow')).show(); }; /* ui events */ f.prototype.handleInputChange = function (event) { this.validateAndGetFormData(event.target); }; f.prototype.handleSubmitForm = function (event) { this.submitForm(); }; f.prototype.handleClickClose = function (event) { this.closePopup(); }; f.prototype.handleClickDiscountLabel = function (event) { $(this.formCt.querySelector('input[name="discountCode"]')).toggle().focus(); }; /* actions */ f.prototype.validateAndGetFormData = function (checkingInput) { var valid = true; var data = {}; var inputToFocus; for (var i = 0, input; input = this.inputs[i]; i++) { var label = input.nextElementSibling; var labelText = label.textContent; var name = input.name; var value = input.value; var type = input.type; var _valid = input.checkValidity(); var message = input.validationMessage; if (type == 'url') { try { var urlObject = new URL(prependUrlProtocol(value, true)); input.value = value = urlObject.href; message = ''; _valid = true; } catch (error) { message = "Please enter a valid URL!"; _valid = false; } } if (!_valid) { if (!checkingInput) { inputToFocus = inputToFocus || input; } if (!checkingInput || checkingInput == input) { labelText = message; } valid = false; } else { data[name] = value; labelText = ''; } label.innerHTML = labelText; } if (inputToFocus) inputToFocus.focus(); return valid && data; }; f.prototype.startLoading = function () { this.loading = true; $(document.body).addClass('loading'); }; f.prototype.stopLoading = function () { this.loading = false; $(document.body).removeClass('loading'); }; /* api */ f.prototype.submitForm = function () { // console.log("submitForm"); if (this.loading) return; var data = this.validateAndGetFormData(); if (!data) return; if (domainFiltered(data.url)) return this.handleError(); // data.name = data.name + ' - ' + data.role; data.source = SUBMIT_SOURCETYPE; data.automated = 1; if (localStorage.cnf_uid) { data.userUuid = localStorage.cnf_uid; } // console.log("submitForm data", data); this.startLoading(); this.renderErrorMessage(''); _post(SUBMIT_API, data).then((function (ret) { if (ret && ret.success) { this.showComplete(); window.gtag && window.gtag('event', 'Get Started Form Sign Up', { 'additional_info': this.additionalInfo, }); } else { throw (ret && ret.errorMsg); } }).bind(this)).catch((function (error) { this.handleError(error); }).bind(this)).then((function () { this.stopLoading(); }).bind(this)); }; f.prototype.handleError = function (error) { var message = error || 'Service is unavailable at the moment. Please try again later or contact our support.'; this.renderErrorMessage(message); }; return f; })(); // common functions function _get(url, data, cfg) { return fetch(url + generateUrlParam(data || {}), Object.assign({ credentials: 'include', method: 'GET', }, cfg)).then(function (res) { return res.ok ? res.json() : Promise.reject(res.statusText || res.status); }); } function _post(url, data, cfg) { // var fd = new FormData(); // Object.keys(data).map(function(k){fd.append(k,data[k])}); var body = Object.keys(data).map(function (k) { return k + '=' + encodeURIComponent(data[k]) }).join('&'); return fetch(url, Object.assign({ credentials: 'include', method: 'POST', // body: fd body: body, headers: { 'content-type': 'application/x-www-form-urlencoded', } }, cfg)).then(function (res) { return res.ok ? res.json() : Promise.reject(res.statusText || res.status); }); } function extractHostname(url, stripWWW) { if (!url || typeof url !== 'string') return ''; var hostname = url; hostname = ((url.split('//')[1] || url).split('/')[0] || url); if (stripWWW) { hostname = hostname.split('www.')[1] || hostname; } return hostname; } function extractPathname(url, lastChunkOnly) { var arr = (url.split('//')[1] || url).split('?')[0].split('/').slice(1); if (lastChunkOnly) { arr = arr.slice(-1); } return arr.join('/') || url; } function prependUrlProtocol(url, https) { //Checks for http://, https:// , //example.com if (!/^(https?:)?\/\//i.test(url.trim())) { return 'http' + (https ? 's' : '') + '://' + url; } return url; } function stripUrlProtocol(url, isHideRelativeProtocol) { return isHideRelativeProtocol ? url.replace(/^https?:\/\/(www\.)?/, '') : url.replace(/^https?:\/\/(www\.)?/, '\/\/'); } function generateUrlParam(params) { for (var i in params) { if (params[i] === null || params[i] === undefined || params[i] === '') delete params[i]; } if (Object.keys(params).length == 0) return ''; return '?' + Object.keys(params).map(function (v) { return v + '=' + params[v]; }).join('&'); } function delay(t, v) { return new Promise(function (resolve) { setTimeout(resolve.bind(null, v), t) }); } // main function renderGSForms() { var formCts = document.body.querySelectorAll('#gsFormNew'); var forms = []; for (var i = 0, ct; ct = formCts[i]; i++) { var form = new GSForm(ct); forms.push(form); if ('popup' == form.type) { window.GSPopupForm = form; } } return forms; } window.GSForms = renderGSForms(); }); </script></div></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren _symbolRoot Symbol_Symbol_SocialShare tabletDisabled phoneLandscapeDisabled phoneDisabled" data-symbol-id="193" data-component-key="jzu92kii" id=""><h5 class="ModularPage_Component ModularPage_Component_h5 _symbolChildren Symbol_Symbol_SocialShare__Title tabletDisabled phoneLandscapeDisabled phoneDisabled" data-symbol-id="193" data-component-key="jzu93knl" id="">Share</h5><div class="ModularPage_Component ModularPage_Component_socialShare _symbolChildren Symbol_Symbol_SocialMediaShare tabletDisabled phoneLandscapeDisabled phoneDisabled" data-sharetitle="undefined" data-shareurl="undefined" data-social="facebook" data-symbol-id="193" data-component-key="jzu92kij" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren" data-symbol-id="193" data-component-key="jzu92kik" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5343_b0f17a46.png" data-symbol-id="193" data-component-key="jzu92kil" id=""></div></div><div class="ModularPage_Component ModularPage_Component_socialShare _symbolChildren Symbol_Symbol_SocialMediaShare tabletDisabled phoneLandscapeDisabled phoneDisabled" data-sharetitle="undefined" data-shareurl="undefined" data-social="twitter" data-symbol-id="193" data-component-key="jzu92kim" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren" data-symbol-id="193" data-component-key="jzu92kin" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5345_2a2f96b2.png" data-symbol-id="193" data-component-key="jzu92kio" id=""></div></div><div class="ModularPage_Component ModularPage_Component_socialShare _symbolChildren Symbol_Symbol_SocialMediaShare tabletDisabled phoneLandscapeDisabled phoneDisabled" data-sharetitle="undefined" data-shareurl="undefined" data-social="linkedin" data-symbol-id="193" data-component-key="jzu92kip" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren" data-symbol-id="193" data-component-key="jzu92kiq" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5344_a09b339c.png" data-symbol-id="193" data-component-key="jzu92kir" id=""></div></div><div class="ModularPage_Component ModularPage_Component_socialShare _symbolChildren Symbol_Symbol_SocialMediaShare tabletDisabled phoneLandscapeDisabled phoneDisabled" data-sharetitle="undefined" data-shareurl="undefined" data-social="email" data-symbol-id="193" data-component-key="jzu92kis" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren" data-symbol-id="193" data-component-key="jzu92kit" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren" height="" width="30px" loading="lazy" data-src="https://su.ultrasite.com/170_a_5342_c60ddc69.png" data-symbol-id="193" data-component-key="jzu92kiu" id=""></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren _symbolRoot Symbol_Symbol_Footer" data-symbol-id="192" data-component-key="jzw0wdi2" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Content" data-symbol-id="192" data-component-key="jzw0wdi4" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Links" data-symbol-id="192" data-component-key="jzw0wdi5" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Links__Col" data-symbol-id="192" data-component-key="jzw0wdi6" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="jzw0wdi7" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="jzw0wdi8" id="">SOLUTIONS</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdi9" id=""><a href="/solutions/china-website-optimization" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdia" id="">China Website Optimization</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren _hide" data-symbol-id="192" data-component-key="jzw0wdid" id=""><a href="/solutions/china-social-media" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdie" id="">China Social Media Integration</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khwtw2q9" id=""><a href="/enterprise" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khwtw2qa" id="">Chinafy for Enterprise</a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kn8af55t" id=""><a href="/vimeo-live-stream" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kn8af55u" id="">B2B Live</a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="jzw0wdih" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="jzw0wdii" id="">FEATURES</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdij" id=""><a href="/website-speed" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdik" id="">Website Speed</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdil" id=""><a href="/website-compatibility" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdim" id="">Website Compatibility</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdin" id=""><a href="/features/site-delivery" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdio" id="">Website Delivery</a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdib" id=""><a href="/solutions/china-seo" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdic" id="">China SEO</a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="l120aswi" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="l120aswj" id="">OTHER SERVICES</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l120aswk" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/china-go-to-market?ICPSupport" target="" data-symbol-id="192" data-component-key="l120aswl" id="">ICP License Filing</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l120aswm" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/china-go-to-market?HostingChina" target="_blank" data-symbol-id="192" data-component-key="l120aswn" id="">Hosting in China</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l120aswo" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/china-go-to-market?WeChatMarketing" target="" data-symbol-id="192" data-component-key="l120aswp" id="">WeChat Marketing</a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l120aswq" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/china-go-to-market?ChineseTranslation" target="" data-symbol-id="192" data-component-key="l120aswr" id="">Translation &amp; Localize</a></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Links__Col" data-symbol-id="192" data-component-key="jzw0wdjj" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup __hide" data-symbol-id="192" data-component-key="jzw0wdjk" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="jzw0wdjl" id="">Industry Solutions</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjm" id=""><a href="/industry-solutions/agriculture" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjn" id="">Agriculture</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjo" id=""><a href="/industry-solutions/automotive" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjp" id="">Automotive</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjq" id=""><a href="/industry-solutions/aviation" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjr" id="">Aviation</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjs" id=""><a href="/industry-solutions/belt-road-initiative" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjt" id="">Belt &amp; Road Initiative</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdju" id=""><a href="/industry-solutions/financial-services" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjv" id="">Financial Services</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjw" id=""><a href="/industry-solutions/healthcare" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjx" id="">Healthcare</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjy" id=""><a href="/industry-solutions/media-entertainment" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjz" id="">Media &amp; Entertainment</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdk0" id=""><a href="/industry-solutions/professional-services" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdk1" id="">Professional Services</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdk2" id=""><a href="/industry-solutions/travel" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdk3" id="">Travel &amp; Hospitality</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdk4" id=""><a href="/industry-solutions/venture-capital" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdk5" id="">Venture Capital</a></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="khd8biqz" id=""><a href="/trust" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="" data-symbol-id="192" data-component-key="khd8cux3" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="khd8bir0" id="">TRUST</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8bir1" id=""><a href="/trust/security" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8bir2" id="">Security</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8bir3" id=""><a href="/trust/reliability" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8bir4" id="">Reliability</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8bir5" id=""><a href="/trust/privacy" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8bir6" id="">Privacy</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8e8t3" id=""><a href="/trust/compliance" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8e8t4" id="">Compliance</a></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="khd8enlq" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="khd8fhwi" id="">LEGAL</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8enlt" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/legal/terms-of-service" target="" data-symbol-id="192" data-component-key="khd8enlu" id="">Terms of Service</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8enlv" id=""><a href="/legal/privacy-policy" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8enlw" id="">Privacy Policy</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8enlx" id=""><a href="/legal/sla" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8enly" id="">SLA</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="khd8enlz" id=""><a href="/legal/data-processing-addendum" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="khd8enm0" id="">Data Processing Addendum</a></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="kugdia9f" id=""><a href="/support/welcome" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="_blank" data-symbol-id="192" data-component-key="kugdms4i" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="kugdia9g" id="">SUPPORT</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kugdp2lk" id=""><a href="/support/welcome" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="_blank" data-symbol-id="192" data-component-key="kugdms4i" id=""></a><a href="/support/welcome" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="kugdp2ll" id="">Chinafy Support<br></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kugdqyej" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://chinafyhelp.zendesk.com/" target="_blank" data-symbol-id="192" data-component-key="kugdqyek" id="">Knowledge Hub<br></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="m14rangj" id=""><a href="/faq" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="m14rangk" id="">FAQs<br></a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Links__Col" data-symbol-id="192" data-component-key="jzw0wdir" id=""><a href="/pricing" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="" data-symbol-id="192" data-component-key="k0qhdmjt" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="jzw0wdit" id="">PRICING</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="k0qhd1to" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="k0qhd1tp" id="">RESOURCES</h4><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k0qhd1tr" id=""><a href="/blog" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="k0qhd1ts" id="">Blog</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k0qhd1tt" id=""><a href="/case-studies" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="k0qhd1tu" id="">Case Studies</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k0qhd1tv" id=""><a href="/industry-data" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="k0qhd1tw" id="">Industry Data</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k6vogpek" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/technology" target="_blank" data-symbol-id="192" data-component-key="k6vogpel" id="">Supported Technologies<br></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kjv629xc" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/china-tech" target="_blank" data-symbol-id="192" data-component-key="kjv629xd" id="">China Tech Landscape<br></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="knr0tzgg" id=""><a href="/press" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="knr0tzgh" id="">Press<br></a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="lm4o8i17" id=""><a href="/glossary" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="lm4o8i19" id="">Website Terms Glossary<br></a></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="jzw0wdj5" id=""><a href="/tools" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="" data-symbol-id="192" data-component-key="k0p48n9f" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="jzw0wdj6" id="">TOOLS</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdj7" id=""><a href="/tools/global-speed-test" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdj8" id="">Global Website Speed Test</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k1szzfcr" id=""><a href="/tools/visual-speed-test" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="k1szzfcv" id="">Website Visual Speed Test</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjb" id=""><a href="/tools/china-code-test" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjc" id="">China Website Code Test</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="jzw0wdjf" id=""><a href="/tools/resource-test" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="jzw0wdjg" id="">China Resource Test</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k1szznir" id=""><a href="/tools/china-seo-basic-test" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="" data-symbol-id="192" data-component-key="k1szzniu" id="">China SEO Basic Test</a></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Links__Col" data-symbol-id="192" data-component-key="k3e3ioxp" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="k3e3ioy2" id=""><a href="/partners" class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" target="_blank" data-symbol-id="192" data-component-key="k3e3ioy4" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="k3e3ioy5" id="">PARTNERS</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="k3e3ioy6" id=""><a href="/partners" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="k3e3ioy7" id="">Become A Partner</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kttrahtu" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://forms.gle/H4nednusf1wparbQA" target="_blank" data-symbol-id="192" data-component-key="kttrahtw" id="">Partner Application Form</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kywgpnib" id=""><a href="/partners/featured" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kywgpnic" id="">Featured Partners</a></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="kbadbty0" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren" href="https://www.chinafy.com/technology" target="" data-symbol-id="192" data-component-key="kbadbty1" id=""><h4 class="ModularPage_Component ModularPage_Component_h4 _symbolChildren Symbol_Symbol_Footer__Links__Title" data-symbol-id="192" data-component-key="kbadbty2" id="">TECHNOLOGIES</h4></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kbadbty3" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/technology/squarespace-china" target="_blank" data-symbol-id="192" data-component-key="kbadbty4" id="">Squarespace in China</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kbadbty7" id=""><a href="/shopify-in-china" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kbadbty8" id="">Shopify in China</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kbadbty9" id=""><a href="/wordpress-in-china" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kbadbtya" id="">Chinafy for WordPress</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kbadbtyb" id=""><a href="/adobe-experience-manager-in-china" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kbadbtyc" id="">Chinafy for AEM</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l29pg4if" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/technology/cloudflare-china" target="_blank" data-symbol-id="192" data-component-key="l29pg4ig" id="">Cloudflare in China</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="kbadrod9" id=""><a href="/webflow-in-china" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="kbadrodb" id="">Chinafy for Webflow</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="l3l1iwxt" id=""><a href="/drupal-in-china" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="l3l1iwxu" id="">Chinafy for Drupal</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Footer_LinkGroup" data-symbol-id="192" data-component-key="ktwe8dbe" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="ktwe8dbh" id=""><a href="/chinafy-vs-cdn" class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" target="_blank" data-symbol-id="192" data-component-key="ktwe8dbi" id="">Chinafy vs. CDN</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="ktwe8dbj" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/chinafy-vs/cloudflare-cdn" target="_blank" data-symbol-id="192" data-component-key="ktwe8dbk" id="">Chinafy vs. Cloudflare CDN</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="ktwe8dbl" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/chinafy-vs/akamai-china-cdn" target="_blank" data-symbol-id="192" data-component-key="ktwe8dbm" id="">Chinafy vs. Akamai CDN</a></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren" data-symbol-id="192" data-component-key="ktwe8dbn" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__Links__Link" href="https://www.chinafy.com/chinafy-vs/mlytics" target="_blank" data-symbol-id="192" data-component-key="ktwe8dbo" id="">Chinafy vs. Mlytics</a></div></div></div></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Logo" data-symbol-id="192" data-component-key="jzw0wdk6" id=""><div class="ModularPage_Component ModularPage_Component_imgWrapper _symbolChildren Symbol_Symbol_Footer__Logo__Image" data-symbol-id="192" data-component-key="jzw0wdk7" id=""><img class="ModularPage_Component ModularPage_Component_img _symbolChildren Image" height="auto" width="220px" loading="lazy" data-src="https://su.ultrasite.com/170_a_7755_2dee4c08.png" data-symbol-id="192" data-component-key="jzw0wdk8" id=""></div><span class="ModularPage_Component ModularPage_Component_span _symbolChildren Symbol_Symbol_Footer__Logo__Text" data-symbol-id="192" data-component-key="jzw0wdk9" id=""><div>Faster, fuller website delivery for China. </div></span></div></div><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__Bottom" data-symbol-id="192" data-component-key="jzw0wdka" id=""><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__BottomInner" data-symbol-id="192" data-component-key="k0eugb9g" id=""><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren Symbol_Symbol_Footer__Social" href="https://twitter.com/ChinafyTech" target="_blank" data-symbol-id="192" data-component-key="k0eugb9h" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_Symbol_Footer__SocialIcon im im-twitter" data-icontext="" data-iconclassname="im im-twitter" data-symbol-id="192" data-component-key="k0eugb9i" id=""></i><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="192" data-component-key="k0eugb9j" id="">Follow Chinafy on Twitter</span></a><a class="ModularPage_Component ModularPage_Component_linkBlock _symbolChildren Symbol_Symbol_Footer__Social" href="https://forms.gle/hbfzkGZWoeLMmcu47" target="_blank" data-symbol-id="192" data-component-key="k0w2byn1" id=""><i class="ModularPage_Component ModularPage_Component_icon _symbolChildren Symbol_Symbol_Footer__SocialIcon icofont icofont-slack" data-icontext="" data-iconclassname="icofont icofont-slack" data-symbol-id="192" data-component-key="k0w2byn2" id=""></i><span class="ModularPage_Component ModularPage_Component_span _symbolChildren" data-symbol-id="192" data-component-key="k0w2byn3" id="">Talk China Web Performance on Slack</span></a><div class="ModularPage_Component ModularPage_Component_div _symbolChildren Symbol_Symbol_Footer__BottomLinks" data-symbol-id="192" data-component-key="k0eugb9k" id=""><a class="ModularPage_Component ModularPage_Component_linkText _symbolChildren Symbol_Symbol_Footer__BottomLink" target="" data-symbol-id="192" data-component-key="k0eugb9l" id=""> </a></div><div class="ModularPage_Component ModularPage_Component_p _symbolChildren Symbol_Symbol_Footer__Copyright" data-symbol-id="192" data-component-key="k0eugb9n" id="">Copyright © 2023 Notey Limited. All Rights Reserved.</div></div></div></div> <noscript><iframe style="display:none;visibility:hidden" width="0" height="0" src="https://www.googletagmanager.com/ns.html?id=GTM-5ZT9GRZ"></iframe></noscript> <style type="text/css"> /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */ .SubscribeOverlay .content__gdpr, .SubscribeOverlay .content__gdprLegal { display: none !important; } .SubscribeOverlay { position: fixed; width: 100%; top: 0; left: 0; right: 0; bottom: 0; background: rgba(29, 29, 29, 0.8); align-items: center; justify-content: center; /*display: none;*/ display: flex; opacity: 0; pointer-events: none; height: 0; transition: .3s all ease; z-index: 101; } body.showingSubscribeOverlay .SubscribeOverlay { height: 100% !important; opacity: 1 !important; pointer-events: all !important; } .SubscribeOverlayForm { width: 100%; max-width: 660px; margin: 0 auto; position: relative; padding: 30px; } .SubscribeOverlayInputField { position: relative; display: flex; } .SubscribeOverlayLabel { font-weight: 500; color: white; line-height: 53px; font-size: 45px; display: block; margin-bottom: 40px; } .SubscribeOverlayEmailInput { font-size: 16px; padding: 12px 15px; border: 0; background: white; box-sizing: border-box; flex: 1; margin-right: 10px; margin-bottom: 0; } #SubscribeOverlaySubmit { border-top-right-radius: 2px; border-top-left-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; color: #ffffff; cursor: pointer; align-items: center; justify-content: center; background-color: #1B71F0; transition: all .2s ease 0s; width: auto; height: auto; display: inline-block; text-align: center; padding-top: 10px; margin-bottom: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 15px; padding-right: 15px; font-size: 20px; font-weight: 600; width: 126px; } .SubscribeOverlayClose { position: absolute; bottom: 100%; right: 0; width: 37px; height: 37px; background: #A1CCFF; border-radius: 100%; text-align: center; cursor: pointer; } .closebutton-text { line-height: 37px; font-size: 25px; color: #555; font-weight: bold; } .SubscribeOverlayOpen { border-top-right-radius: 2px; border-top-left-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border-bottom-width: 0; border-left-width: 0; border-right-width: 0; border-top-width: 0; color: #ffffff; cursor: pointer; align-items: center; justify-content: center; background-color: #1B71F0; transition: all .2s ease 0s; width: auto; height: auto; display: inline-block; text-align: center; white-space: nowrap; padding-top: 12px; margin-bottom: 0px; margin-top: 0px; padding-bottom: 12px; padding-left: 16px; padding-right: 16px; background: #6485FF; font-size: 16px; font-weight: 600; } @media (max-width: 991px) { body.mobileMenuIsOpen #MobileMenuToggle { background: #fff !important; } } </style> <script type="text/javascript"> function toggleSubscribeOverlay(e){ if(window.GSPopupForm){ window.GSPopupForm.showPopup(); return; } var opened = !document.body.classList.contains('showingSubscribeOverlay'); document.body.classList.toggle('showingSubscribeOverlay'); if(opened){ window.mixpanel&&mixpanel.track("Subscribe Overlay"); } } function onSubscribeFormSubmit(e){ if(window.mixpanel){ try{ var email = ""; Array.from(e.target.getElementsByTagName("input")).map(function(input){ if(input.value&&input.name=="EMAIL"){ email = input.value; } }); if(email){ mixpanel.people.set_once({"$email":email}) mixpanel.track("Subscribe Submit",{"$email":email}); } }catch(err){ console.error(err); } } } function stopPropagation(e){ e.stopPropagation(); } $(document).ready(function(){ var open = document.getElementsByClassName('SubscribeOverlayOpen'); for(var i=0; i<open.length; i++){ open[i].addEventListener('click', toggleSubscribeOverlay, false); } //var open = document.getElementById('SubscribeOverlayOpen'); //open.addEventListener('click', toggleSubscribeOverlay, false); var close = document.getElementsByClassName('SubscribeOverlayClose'); for(var i=0; i<close.length; i++){ close[i].addEventListener('click', toggleSubscribeOverlay, false); } //var close = document.getElementById('SubscribeOverlayClose'); //close.addEventListener('click', toggleSubscribeOverlay, false); var subforms = document.getElementsByClassName('SubscribeOverlayForm'); for(var i=0; i<subforms.length; i++){ subforms[i].addEventListener('submit', onSubscribeFormSubmit, false); } // fix article popup javascript links Array.from(document.querySelectorAll('a[href^="https://javascript:"]')).map(a=>{a.target='';a.href=a.href.slice(8,-1);}) }) </script> <div class="SubscribeOverlay"> <form novalidate="" target="_blank" name="mc-embedded-subscribe-form" method="post" action="https://chinafy.us8.list-manage.com/subscribe/post?u=6609074aeea2d6e3888ab2182&id=d437a62b0d" class="SubscribeOverlayForm validate"> <div class="SubscribeOverlayClose"><span class="closebutton-text">×</span></div> <div> <label for="mce-EMAIL" class="SubscribeOverlayLabel">Sign up for updates on our beta release.</label> <div class="SubscribeOverlayInputField"> <input required="" placeholder="Your email address" name="EMAIL" value="" type="email" class="SubscribeOverlayEmailInput"> <div class="mergeRow gdpr-mergeRow content__gdprBlock mc-field-group"> <div class="content__gdpr"> <label>Marketing Permissions</label> <p>Notey will use the information you provide on this form to be in touch with you and to provide updates and marketing. Please let us know all the ways you would like to hear from us:</p> <fieldset name="interestgroup_field" class="mc_fieldset gdprRequired mc-field-group"> <label for="gdpr_49" class="checkbox subfield"><input class="av-checkbox " value="Y" name="gdpr[49]" checked="" type="checkbox"><span>Email</span> </label><label for="gdpr_57" class="checkbox subfield"><input class="av-checkbox " value="Y" name="gdpr[57]" checked="" type="checkbox"><span>Customized online advertising</span> </label> </fieldset> <p>You can change your mind at any time by clicking the unsubscribe link in the footer of any email you receive from us, or by contacting us at community@notey.com. We will treat your information with respect. For more information about our privacy practices please visit our website. By clicking below, you agree that we may process your information in accordance with these terms.</p> </div> <div class="content__gdprLegal"> <p>We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. <a target="_blank" href="https://mailchimp.com/legal/">Learn more about Mailchimp's privacy practices here.</a></p> </div> </div> <div aria-hidden="true" style="position: absolute; left: -5000px;"><input value="" tabindex="-1" name="b_6609074aeea2d6e3888ab2182_d437a62b0d" type="text"></div> <div class="clear"><input class="button" name="subscribe" value="Join" type="submit" id="SubscribeOverlaySubmit"></div> </div> </div> </form> </div> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o2gq6'); twq('track','PageView'); </script> <script> (function(i, s, o, g, r, a, m) { i[r] = i[r] || {key:'1069bc36af5e5e20336038f72ff67e26', server: '//sites.chinafy.com'}; a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m); })(window, document, 'script', 'https://files.chinaasaservice.com/analytics/v1/guest-tracking.min.js', 'CNF'); </script> <script> (function(){ var uid = localStorage.getItem("cnf_uid"); if(uid){ window.gtag&&window.gtag('set','user_properties',{'chinafy_user_id':uid}); } })(); </script> <script>(function(){var translatedBannerEl = document.createElement('div'); translatedBannerEl.className = 'weglot-translated-banner'; translatedBannerEl.innerHTML = 'Kindly note that this page has been automatically translated, and as such, there may be some localisation errors. For the original content in English, please visit <a href="https://www.chinafy.com/">www.chinafy.com</a>.'; var styleEl = document.createElement('style'); styleEl.innerHTML = ` body:not(.__weglot-translated) .weglot-translated-banner { display: none; } .weglot-translated-banner { position: fixed; bottom: 0; left: 0; right: 0; background: rgb(137 178 251); z-index: 100; text-align: center; padding: 4px; font-size: 14px; } .weglot-translated-banner a { text-decoration: underline; } `; document.body.append(styleEl); document.body.append(translatedBannerEl); var isTranslatedLang = !!Weglot.options.languages.find(function(l){return l.language_to===Weglot.getCurrentLang()}); if(isTranslatedLang){ document.body.classList.add('__weglot-translated'); }})();</script> <script async="" src="//code.tidio.co/bbhuperfxgzigncyghpdrb8rg7zsr9i5.js"></script> <script>(function(){ Page.emailSubmission={ init: false, element: undefined, email: '', testCount: 0, acquireTest: acquireTest,}; var TEST_COUNT_LIMIT=3; var TEXT_AB_SET=[ {'title':'Enjoying our speed tests?','desc':'Unlock [10] more of our speed testing tools below!','submit':'Submit'}, {'title':'Want to optimise your website for China?','desc':'Get in touch to see how our premiere China web performance team of experts can help.','submit':'Unlock'}, ]; var AB_SET_IDX=(Math.floor(Math.random()*2)); var lockedCallbacks=[]; var unlockedCallbacks=[]; function acquireTest(lockedCallback,unlockedCallback){ lockedCallback && lockedCallbacks.push(lockedCallback); unlockedCallback && unlockedCallbacks.push(unlockedCallback); var testCount=window.localStorage && JSON.parse(window.localStorage.getItem('test_count')) || 0; Page.emailSubmission.testCount=testCount=testCount+1; window.localStorage && window.localStorage.setItem('test_count',testCount); var testUnlocked=window.localStorage && JSON.parse(window.localStorage.getItem('test_unlocked')); if(testUnlocked) return true; if(testCount>=TEST_COUNT_LIMIT){ lockedCallbacks.forEach(function(func){ func && func();}); if(testCount>TEST_COUNT_LIMIT){ showOverlay(); return false;}} return true;} function unlockTestCount(){ window.localStorage && window.localStorage.setItem('test_unlocked',true); unlockedCallbacks.forEach(function(func){ func && func();});} function addLockedCallback(func){ lockedCallbacks.push(func);} function addUnlockedCallback(func){ unlockedCallbacks.push(func);} function showOverlay(){ Page.emailSubmission.element.classList.remove('hide'); showStartScreen();} function hideOverlay(){ Page.emailSubmission.element.classList.add('hide'); showStartScreen();} function showStartScreen(){ var start=Page.emailSubmission.element.querySelector('[data-screen="start"]'); var end=Page.emailSubmission.element.querySelector('[data-screen="end"]'); start.style.display=''; end.style.display='none';} function showEndScreen(){ var start=Page.emailSubmission.element.querySelector('[data-screen="start"]'); var end=Page.emailSubmission.element.querySelector('[data-screen="end"]'); start.style.display='none'; end.style.display='';} function renderOverlay(){ if(Page.emailSubmission.init) return; var t=TEXT_AB_SET[AB_SET_IDX]; var id=btoa(Math.random()); var html='<style>.EmailOverlay.hide{display:none}.EmailOverlay{position:fixed;top:0px;left:0px;right:0px;bottom:0px;display:flex;align-items:center;justify-content:center;z-index:10002}.EmailOverlay-BG{position:absolute;top:0px;left:0px;right:0px;bottom:0px;background-color:rgba(0,0,0,0.3)}.EmailOverlay-Box{margin-right:auto;margin-left:auto;width:600px;max-width:95vw;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;position:relative;background-color:rgba(255,255,255,1);border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:rgba(0,0,0,0.3) 0px 2px 10px 0px }.EmailOverlay-Close{position:absolute;top:10px;left:;right:10px;bottom:;cursor:pointer}.EmailOverlay-Title{display:block;font-weight:700;font-size:24px;text-align:center}.EmailOverlay-Form{position:relative;margin:24px auto;display:flex;justify-content:stretch;align-items:stretch;border-top-style:solid;border-left-style:solid;border-right-style:solid;border-bottom-style:solid;border-top-width:1px;border-left-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-color:rgba(204,204,204,1);border-left-color:rgba(204,204,204,1);border-right-color:rgba(204,204,204,1);border-bottom-color:rgba(204,204,204,1)}.EmailOverlay-Input{flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-basis:0%;-webkit-flex-basis:0%;-ms-flex-basis:0%}.EmailOverlay-Desc{margin-top:12px;margin-bottom:12px;text-align:center;opacity:0.75;font-size:px;display:block}.inlineText{display:inline}.EmailOverlay-Footnote{margin-top:12px;margin-bottom:12px;font-size:14px;display:block}.EmailOverlay-Box.EmailOverlay-Box{margin-right:auto;margin-left:auto;width:600px;max-width:95vw;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;position:relative;background-color:rgba(255,255,255,1);border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:rgba(0,0,0,0.3) 0px 2px 10px 0px }.EmailOverlay-Desc.EmailOverlay-Desc{margin-top:12px;margin-bottom:12px;text-align:center;opacity:0.75;font-size:px;display:block}.EmailOverlay-Footnote.EmailOverlay-Footnote{margin-top:12px;margin-bottom:12px;font-size:14px;display:block}.EmailOverlay-InputMessage.EmailOverlay-InputMessage{position: absolute;font-size: 12px;color: rgba(238,65,41,1);margin-top: 4px;margin-left: 10px;bottom: 100%;margin-bottom: 4px}.inlineLink{font-weight: 700;color: var(--electric-blue-0, rgba(0,79,235,1));</style><div class="ModularPage_Component ModularPage_Component_div EmailOverlay" data-component-key="ls2o7fia" id=""><div class="ModularPage_Component ModularPage_Component_div EmailOverlay-BG" data-component-key="ls2o86rs" id=""></div><div class="ModularPage_Component ModularPage_Component_div EmailOverlay-Box" data-component-key="ls2o910u" id=""><i class="ModularPage_Component ModularPage_Component_icon EmailOverlay-Close ultra-material-icons ultra-material-icons--close" data-icontext="close" data-iconclassname="ultra-material-icons ultra-material-icons--close" data-component-key="ls2oku7m" id="">close</i><div class="ModularPage_Component ModularPage_Component_div" data-component-key="ls2wfw7d" data-screen="start" id=""><span class="ModularPage_Component ModularPage_Component_span EmailOverlay-Title" data-component-key="ls2pd4sj" id="">'+t.title+'</span><span class="ModularPage_Component ModularPage_Component_span EmailOverlay-Desc" data-component-key="ls2rl7lp" id="">'+t.desc+'</span><form class="ModularPage_Component ModularPage_Component_div EmailOverlay-Form" data-component-key="ls2rm0o8" id=""><div class="ModularPage_Component ModularPage_Component_embed EmailOverlay-Input" data-component-key="ls2rmau8" id=""><input style="height:100%;width:100%;border:none;background:none;outline:none;padding:0 12px;" placeholder="Your Business Email" name="email" class="EmailOverlay-Input"></div><button class="ModularPage_Component ModularPage_Component_button EmailOverlay-Button" target="" data-component-key="ls2rnnpl" id=""><span class="ModularPage_Component ModularPage_Component_span" data-component-key="ls2rnnpm" id="">'+t.submit+'</span></button><span class="ModularPage_Component ModularPage_Component_span EmailOverlay-InputMessage" data-component-key="ls2tv1tt" id=""></span></form><div class="ModularPage_Component ModularPage_Component_div EmailOverlay-Footnote" data-component-key="ls2rvw3f" id=""><span class="ModularPage_Component ModularPage_Component_span inlineText" data-component-key="ls2rw3en" id="">By clicking '+t.submit+', I also agree to Chinafy\'s&nbsp;</span><a href="/legal/terms-of-service" class="ModularPage_Component ModularPage_Component_linkText inlineText" target="_blank" data-component-key="ls2rx81u" id=""><u>Terms of Service</u></a><span class="ModularPage_Component ModularPage_Component_span inlineText" data-component-key="ls2rxtg9" id="">&nbsp;&amp;&nbsp;</span><a href="/legal/privacy-policy" class="ModularPage_Component ModularPage_Component_linkText inlineText" target="_blank" data-component-key="ls2ry0fc" id=""><u>Privacy Policy</u></a></div></div><div class="ModularPage_Component ModularPage_Component_div" data-component-key="ls2vr385" data-screen="end" id=""><span class="ModularPage_Component ModularPage_Component_span EmailOverlay-Title" data-component-key="ls2vr387" id="">Thanks for connecting!</span><span class="ModularPage_Component ModularPage_Component_span EmailOverlay-Desc" data-component-key="ls2vr388" id="">We hope you continue to enjoy our China web performance tools.</span><div class="ModularPage_Component ModularPage_Component_div EmailOverlay-Desc" data-component-key="ls2vtqf1" id=""><span class="ModularPage_Component ModularPage_Component_span" data-component-key="ls2vtsat" id="">Want to make your website work in China?&nbsp;</span><div class="ModularPage_Component ModularPage_Component_div" data-component-key="ls2vv4mm" id=""><a class="ModularPage_Component ModularPage_Component_linkText inlineLink" href="javascript:;" data-action="get-started" target="" data-component-key="ls2vv72a" id="">Get started here.</a></div></div></div></div></div>'; var template=document.createElement('template'); template.innerHTML=html; var els=template.content.cloneNode(true).childNodes; while(els.length>0){ var el=els[0]; if(el.tagName.toLowerCase()==='div') Page.emailSubmission.element=el; document.body.appendChild(el);} hideOverlay(); var bg=Page.emailSubmission.element.querySelector('.EmailOverlay-BG'); var close=Page.emailSubmission.element.querySelector('.EmailOverlay-Close'); bg.addEventListener('click',hideOverlay); close.addEventListener('click',hideOverlay); var getStarted=Page.emailSubmission.element.querySelector('[data-screen="end"] [data-action="get-started"]'); getStarted.addEventListener('click',function(){ GSPopupForm.showPopup(null,'Email Submission'); GSPopupForm.formCt.querySelector('input[name="email"]').value=Page.emailSubmission.email; hideOverlay();}); var form=Page.emailSubmission.element.querySelector('form'); form.addEventListener('submit',handleFormSubmit); Page.emailSubmission.init=true;}; function handleFormSubmit(event){ event.preventDefault(); var form=Page.emailSubmission.element.querySelector('form'); var input=form.querySelector('input'); var button=form.querySelector('button'); var inputMessage=form.querySelector('span.EmailOverlay-InputMessage'); var re=/.+@.+\..+/g; var email=input.value; if(!re.exec(email)){ inputMessage.textContent='Please input a valid email address'; return false;} Page.emailSubmission.email=email; (async function(){ try{ await submit(email); inputMessage.textContent=''; unlockTestCount(); showEndScreen();}catch(error){ inputMessage.textContent=error && error.message || error || 'We ran into an unexpected error, please try again later.' ;}})(); return false;} async function submit(email){ window.gtag&&window.gtag('event','Email Submission',{ 'ab_test_idx': AB_SET_IDX,}); var uuid=localStorage.getItem('cnf_uid'); var url=location.pathname + location.search; var res=await fetch('https://sites.chinafy.com/api2/pct/user/email',{ method: 'POST', headers:{}, body: new URLSearchParams({ "userUuid": uuid, "email": email, "url": url,}),}); if(!res.ok || (await res.json()).errorCode) throw new Error('We ran into an unexpected error, please try again later.');} renderOverlay()})();</script> <script src="https://www.chinafy.com/js/poca/component/SpeedTestHelper.js"></script> <script src="https://www.google.com/recaptcha/api.js?render=6Le7NJsUAAAAACod5ABi3XOQWZBVxkBTKPEYllhH"></script> <script> /* main */ window.addEventListener('DOMContentLoaded', function(){ /* global variable */ var input; var select; var network = 'Good3G'; // default network var domain = '';//extractHostname(input.value); var isMobile = /mobile/i.test(navigator.userAgent); var errorCount; var displayData = {}; var apiColumns = { 'v2': [1,2,3,4,5,6,7], } var maxRequestCount = 1; var pendingRequestCount = 0; var requestQueue = []; var locData = {}; var inputCt = document.getElementById('speed-test-domain'); $('.ResultPageSection').css({display:'none'}); /*Input page functions*/ var verifyToken = function(token){ $.post("www.google.com/recaptcha/api/siteverify", { secret: '6Le7NJsUAAAAAPNbW1kjDFYYknsbnxkG305JYRDn', response: token, }, onSiteVerify); } var onSiteVerify = function(data, status){ recaptcha_callback(); // if(status=='success'){ // recaptcha_callback(); // }else{ // if(confirm('recaptcha test failed\n Try again')){ // // grecaptcha&&grecaptcha.reset() // } // } } var onloadCallback = function( d, n ) { recaptcha_callback(); // domain = d; // network = n; // grecaptcha.ready(function() { // grecaptcha.execute('6Le7NJsUAAAAACod5ABi3XOQWZBVxkBTKPEYllhH', {action: 'speedTestResult'}).then(function(token) { // verifyToken(token); // }); // }); }; function recaptcha_callback( ){ // var url = '/chinafy-tools/speed-test/result?domain=' + domain + '&network='+network; // window.location.href = url; // var url = '/tools/speed-test?site=' + domain + '&network='+network; // var url = location.origin + location.pathname + '?site=' + domain + '&network='+network; // var stateObj = {}; //comment out for preview // history.pushState(stateObj, "Tools - speed test result", url); renderTestResult(); } function startScan(isOnWebsiteLoaded){ // var input = document.querySelector('#speed-test-domain-input'); // var domain = input.value;//extractHostname(input.value); // var network = document.querySelector('#speed-test-network-select').value; var startButtonTextCt = document.getElementById('start-button-text'); if(!Page.emailSubmission.acquireTest( function(){ startButtonTextCt.innerHTML = 'Unlock'; }, function(){ startButtonTextCt.innerHTML = 'Run Test'; startScan(); } )){ return; } document.body.classList.add('speed-test-started'); input = document.querySelector('#speed-test-domain-input'); select = document.querySelector('#speed-test-network-select'); domain = isOnWebsiteLoaded===true ? getURLParameterByName('site') : input.value;//extractHostname(input.value); network = isOnWebsiteLoaded===true ? getURLParameterByName('network')||network : select.value; if(isOnWebsiteLoaded===true){ $(input).val(domain); $(select).val(network); } else { if(!domain) return; var url = location.origin + location.pathname + '?site=' + sanitizeTestUrl(domain) + '&network='+network; var isAll = !(document.querySelector('#speed-test-location-wrapper tbody input:not(:checked)')); if(!isAll){ var locationInputs = document.querySelectorAll('#speed-test-location-wrapper tbody input:checked'); var locations = []; locationInputs.forEach(function(loc){ locations.push(loc.value) }); url += '&location='+locations.join(encodeURIComponent(',')); } var stateObj = {}; try{ var uri = new URL(url); history.pushState(stateObj, "Tools - speed test result", uri.href); window.gtag&&window.gaData&&gtag('config',Object.keys(gaData)[0],{'page_path':uri.href}); window.gtag&&window.gtag('event','Global Speed Test Submitted',{ 'global_speed_test_url': url, }); }catch(error){ console.error('error when pushing state',error); } } if(domain&&network&&document.querySelector('#speed-test-location-wrapper tbody input:checked')){ // input.setAttribute('disabled','disabled'); // select.setAttribute('disabled','disabled'); onloadCallback( domain, network ); // var changeURLButtonCt = document.querySelector('#change-url-button:not(.Button__Disabled)'); // changeURLButtonCt&&(changeURLButtonCt.addEventListener('click',onClickChangeURL,this)); // window.location.href = location.pathname+'/result?domain='+domain; } } /* util */ function extractHostname(url,stripWWW) { var hostname = url; hostname = ((url.split('//')[1]||url).split('/')[0]||url); if(stripWWW){ hostname = hostname.split('www.')[1]||hostname; } return hostname; } function onKeyDown(event){ if(event.key==='Enter'){ startScan(); } } // function onClickChangeURL(event){ // input.removeAttribute('disabled') // select.removeAttribute('disabled') // var button = document.querySelector('#change-url-button') // $(button).addClass('Button__Disabled'); // } /* events */ function addEventListeners(){ var startButtonCt = document.querySelector('#start-test-button'); startButtonCt&&(startButtonCt.addEventListener('click',startScan,this)); var input = document.querySelector('#speed-test-domain-input'); input&&(input.addEventListener('keydown',onKeyDown,this)); } function handleError(error){ console.error("error", error); alert(error); } /*Result page functions*/ poca.SpeedTestHelper.apiCfg.v2 = '//${prefix}.ultrasite.com${port}/api2/web/performance/v2${suffix}'; poca.SpeedTestHelper.init(); var cfg = poca.SpeedTestHelper; if(!cfg.locationsCfgMap.guangzhou){ Object.assign(cfg.locationsCfgMap,{ 'guangzhou': { name: 'Guangzhou', isChina: true, urlPrefix: 'www', }, }); cfg.locationAreasMap.asiaPacific.items.splice(1,0,['guangzhou']); } if(!cfg.locationsCfgMap.shanghai){ Object.assign(cfg.locationsCfgMap,{ 'shanghai': { name: 'Shanghai', isChina: true, urlPrefix: 'www', }, }); cfg.locationAreasMap.asiaPacific.items.splice(1,0,['shanghai']); } var locCfg = cfg.locationsCfgMap; var areaCfg = Object.assign({},cfg.locationAreasMap); Object.keys(areaCfg).map(function(key){ areaCfg[key] = Object.assign({},areaCfg[key],{ items: areaCfg[key].items.filter(function(loc){ return !locCfg[loc].isChina; }), }); }); areaCfg = Object.assign({ china: { label: 'China', items: Object.keys(locCfg).filter(function(key){ return locCfg[key].isChina; }), }, },areaCfg); function renderTestResult(){ renderUpdatePageSection(); renderLocations(); // domain = getURLParameterByName('domain').toLowerCase(); domain = domain || getURLParameterByName('site').toLowerCase(); network = getURLParameterByName('network')||network; if(domain||window.location.href==='about:srcdoc'&&(domain='google.com')){ renderDomain(domain); startTest(); if(window.mixpanel){ mixpanel.register({"Has Used Speed Test":true}); mixpanel.people.set({"Has Used Speed Test":true}); mixpanel.people.set({"Speed Test Last Site":domain}); mixpanel.people.set({"Speed Test Last Date":(new Date()).toISOString()}); mixpanel.people.set_once({"Speed Test First Site":domain}); mixpanel.people.set_once({"Speed Test First Date":(new Date()).toISOString()}); mixpanel.people.increment({"Speed Test Site Count":1}); mixpanel.track("Runs Speed Test",{"Speed Test Site":domain}); } } document.querySelectorAll('.SpeedTest_Form')[0].onsubmit = function(event){ if(isLoadingComplete()){ event.preventDefault(); domain = inputCt.value.toLowerCase(); if(domain){ startTest(); } } return false; }; } function renderUpdatePageSection(){ $('.ResultPageSection').css({display:'block'}); $('.InputPageSection').css({display:'none'}); // $('#change-url-button').removeClass('Button__Disabled'); var startButtonTextCt = document.getElementById('start-button-text'); startButtonTextCt.innerHTML = 'Test Another!'; var siteScanTimestampWrapperCt = document.getElementById('site-scan-timestamp-wrapper'); var siteScanTimestampTextCt = document.getElementById('site-scan-timestamp-text'); siteScanTimestampWrapperCt.style.display = 'block'; siteScanTimestampTextCt.innerHTML = moment().format('ddd, D MMM YYYY [at] HH:mm a'); } function genUrl(url,data){ return (url .replace('${prefix}',data.urlPrefix||'') .replace('${port}',data.port?(':'+data.port):'') .replace('${suffix}',data.isChina?'/china':'')); } function prependUrlProtocol(url){ //Checks for http://, https:// , //example.com if (!/^(https?:)?\/\//i.test(url.trim())) { return 'https://' + url; } return url; } function stripUrlProtocol(url, isHideRelativeProtocol){ return isHideRelativeProtocol ? url.replace(/^https?:\/\/(www\.)?/, '') : url.replace(/^https?:\/\/(www\.)?/, '\/\/'); } function startTest(loc){ // inputCt.setAttribute('disabled','disabled'); doSpeedTest(loc); getLocationRow().className = 'faded'; } function doSpeedTest(locationKey,api){ errorCount = 0; var apiUrl = cfg.apiCfg.v2; var apiBaseData = { url: prependUrlProtocol(domain,true), // isMobile: true, network: network, }; (locationKey&&locCfg[locationKey]?[locationKey]:Object.keys(locCfg).filter(isLocationSelected)) .map(function(key){ var data = locCfg[key]; var apiData = Object.assign({},apiBaseData); if(data.isChina){ apiData.location = key; // apiData.network = "Regular3G"; // biased network for china } renderLocationLoading(key); var url = genUrl(apiUrl,data); sendRequest(url,apiData,onLoadApiSuccess,onLoadApiError,{loc:key,api:'v2'}); }); } function openWaterfall(loc){ var data = { loc: locData[loc]||{}, media: "Mobile", url: domain, }; this.__CHILD_WINDOW_HANDLE = window.open('https://www.chinafy.com/en/tools/global-speed-test/result/waterfall'); sendMessageWhenChildWindowLoaded(data); } function sendMessageWhenChildWindowLoaded(data){ if(this.__CHILD_WINDOW_HANDLE.ProcessParentMessage){ this.__CHILD_WINDOW_HANDLE.ProcessParentMessage(data); }else{ (function(){ sendMessageWhenChildWindowLoaded(data); }).defer(1000,this) } } function loadTaskApi(query,jobid){ var loc = query.loc; var taskUrl = cfg.apiCfg.tasklist; var data = locCfg[loc]; var url = genUrl(taskUrl,data); var queryData = Object.assign({jobid:jobid},query); var apiData = { id: queryData.jobid }; data.isChina&&(apiData.location = loc); sendRequest(url,apiData,onLoadTaskSuccess,onLoadApiError,queryData); } function renderLocations(){ var outerct = document.querySelector('.SpeedTest_Table tbody'); outerct.innerHTML = ''; var tblheader = document.querySelectorAll('.SpeedTest_Table thead tr'); var colcount = tblheader[tblheader.length-1].children.length - 1; var rowHtml = ''; for(var i = 0;i<colcount;i++){ rowHtml += '<td data-idx="'+i+'"></td>'; } var avgRow = outerct.insertRow(-1); avgRow.innerHTML = '<th>Average</th>'+rowHtml; //avgRow.cells[6].className = 'AverageResources'; Object.keys(areaCfg).map(function(key){ var data = areaCfg[key]; var ct = outerct.insertRow(-1); ct.innerHTML = '<th>'+data.label+'</th>'+rowHtml; var isEmpty = true; for(var i=0,len=data.items.length;i<len;i++){ var loc = data.items[i]; if(!isLocationSelected(loc)) continue; displayData[loc] = {}; displayData[loc].rowIndex = outerct.children.length; var item = locCfg[loc]; var row = outerct.insertRow(-1); row.innerHTML = '<td>'+item.name+'</td>'+rowHtml; row.cells[0].onclick = onClickLocation; row.cells[1].onclick = onClickLoadingTime; row.cells[5].onclick = onClickSlowResource; row.cells[6].onclick = onClickSlowResource; row.cells[7].onclick = onClickLoadingTime; row.setAttribute('data-loc',loc); isEmpty = false; } if(isEmpty) outerct.removeChild(ct); }); addTooltipListeners(); } function renderLocationLoading(loc){ if(!displayData){ renderLocations(); } if(displayData[loc]){ displayData[loc].data = {}; renderLocationClass(loc,'loading'); renderLocationEmpty(loc); } } function renderLocationLoaded(loc){ renderLocationClass(loc,'loaded'); Object.keys(apiColumns).map(function(key){ renderLocationClass(loc,'loaded',key); }); } function renderLocationClass(loc,className,api){ var ct = getLocationRow(loc); var cols = apiColumns[api]; if(cols){ var cells = ct.cells; for(var i=0,len=cols.length;i<len;i++){ cells[cols[i]].className = className; } } else{ ct.className = className; } } function renderLocationEmpty(loc){ var row = getLocationRow(loc); var cells = row.cells; for(var i=1,len=cells.length;i<len;i++){ cells[i].textContent = ''; cells[i].className = ''; } } function renderLighthouseData(tasks,query){ var loc = query.loc; var data = tasks.webperformanceResult.lighthouseMetrics; var ct = getLocationRow(loc); var cells = ct.cells; // first paint cells[3].textContent = data?((data.firstMeaningfulPaint/1000).toFixed(2) + ' s'):'N/A'; // first interactive cells[4].textContent = data?((data.interactive/1000).toFixed(2) + ' s'):'N/A'; //isLocationLoaded(loc)&& renderLocationLoaded(loc); } function renderPerformanceData(tasks,query){ var loc = query.loc; var data = tasks.webperformanceResult; var ct = getLocationRow(loc); var cells = ct.cells; var isChina = locCfg[loc].isChina; var time = data.totalTime; var size = data.totalByteSize; if(time===0&&size===0) return; // get us avg values var usAvgValues = []; for(var i=0,cell;cell=cells[i];i++){ var locs = areaCfg.northAmerica.items; usAvgValues[i] = locs.reduce(function(v,loc){ var row = getLocationRow(loc); var ct = row.cells[i]; var value = ct?parseFloat(ct.dataset.value):0; return v+value; },0)/locs.length; } // loading time cells[1].dataset.value = time; cells[1].textContent = (time/1000).toFixed(2) + ' s'; // isChina&&console.log(time,usAvgValues[1],time>usAvgValues[1]+7000); if(isChina&&time>usAvgValues[1]+7000){ cells[1].dataset.improvement = ((usAvgValues[1]+(time-usAvgValues[1])*.1)/1000).toFixed(2)+'s'; cells[1].dataset.slow = true; // waterfall btn cells[1].dataset.loc = loc; var btn = document.createElement('i'); btn.className = 'gm-icon waterfallIcon'; btn.innerHTML = 'assessment'; btn.addEventListener('click',this.onClickLocation); cells[1].appendChild(btn); }else{ delete cells[1].dataset.slow; } // time to first byte var ttfbValue; if(data.result.length > 0){ var firstRequest = data.result[0]; var duration = (firstRequest.finishedTime - firstRequest.requestTime) * 1000; var downloadTime = duration - firstRequest.receiveHeadersEnd; var time = duration - downloadTime; ttfbValue = time<0?null:((time>10?time.toFixed(0):time.toFixed(2))+' ms'); } cells[2].textContent = cells[2].dataset.value = ttfbValue||''; // page size cells[5].dataset.value = size; cells[5].textContent = (size/1000000).toFixed(1)+' MB'; // isChina&&console.log(size,usAvgValues[5],size<usAvgValues[5]); if(isChina&&size<usAvgValues[5]){ cells[5].dataset.slow = true; }else{ delete cells[5].dataset.slow; } // # resources cells[6].textContent = cells[6].dataset.value = data.result.length; // isChina&&console.log(data.result.length,usAvgValues[6],data.result.length<usAvgValues[6]); if(isChina&&data.result.length<usAvgValues[6]){ cells[6].dataset.slow = true; }else{ delete cells[6].dataset.slow; } //isLocationLoaded(loc)&&renderLocationLoaded(loc); } function renderAverage(){ renderLocationEmpty(); var avg = {}; Object.keys(displayData).map(function(loc){ var row = getLocationRow(loc); var cells = row.cells; for(var i=1,len=cells.length-1;i<len;i++){ var content = cells[i].innerText; var value = parseFloat(content.replace(',','')); if(!value||isNaN(value)) continue; if(avg[i]){ avg[i].count++; avg[i].total += value; } else{ var arrContent = content.split(/\s/); var decimal = arrContent[0].split('.'); avg[i] = { count: 1, total: value, suffix: arrContent.length>1?arrContent.pop():'', decimal: decimal.length>1?decimal.pop().length:0 } } } }); var row = getLocationRow(); Object.keys(avg).map(function(col){ var cell = row.cells[col]; var data = avg[col]; var value = (data.total / data.count).toFixed(data.decimal); cell.dataset.value = value; cell.textContent = formatNumber(value)+' '+data.suffix; }); row.className = ''; } function renderLoadingTimeColourCoding(){ var row = getLocationRow(); var ct = row.cells[1]; var avg = ct?parseFloat(ct.textContent):0; if(avg){ var threshold = avg*1.5; Object.keys(displayData).map(function(loc){ var cell = getLocationRow(loc).cells[1]; var value = parseFloat(cell.textContent); if(!value||isNaN(value)||value<threshold) return; // console.log('getLocationRow',getLocationRow(loc)); cell.className = 'highlight-yellow'; cell.setAttribute('data-value',cell.textContent); }); } } function renderDeviation(){ //var ct = document.querySelectorAll('.SpeedTest_Table .AverageResources')[0]; var row = getLocationRow(); var ct = row.cells[6]; var avg = ct?parseFloat(ct.textContent):0; if(avg){ Object.keys(displayData).map(function(loc){ var row = getLocationRow(loc); var content = row.cells[6].textContent; var value = parseFloat(content); if(!value||isNaN(value)) return; var cell = row.cells[7]; var percentage = (value/avg-1)*100; cell.textContent = percentage.toFixed(0) + ' %'; if(percentage<-10) cell.className = 'highlight-yellow'; cell.setAttribute('data-value',cell.textContent); }); } } function renderLocationInputs(){ var selected = getURLParameterByName('location'); selected = selected && selected.split(',') var ct = document.querySelector('#speed-test-location-wrapper'); var thead = ct.querySelector('thead'); var tbody = ct.querySelector('tbody'); var areaKeys = Object.keys(areaCfg); var maxItemCount = areaKeys.reduce(function(max,key){ return Math.max(max,areaCfg[key].items.length); },0); var headRow = thead.insertRow(); areaKeys.map(function(key){ var area = areaCfg[key]; renderLocationInput(headRow.insertCell(),Object.assign({},area,{ key: key, name: area.label, })); area.items.map(function(k,idx){ var loc = locCfg[k]; var row = tbody.rows[idx] || tbody.insertRow(); var cell = row.insertCell(); renderLocationInput(cell,Object.assign({},loc,{ key: k, group: key },selected&&!selected.includes(k)&&{ notChecked: true })); }); for(var i = area.items.length; i < maxItemCount; i++){ var row = tbody.rows[i] || tbody.insertRow(); row.insertCell(); } }); selected && handleCalculateLocationGroupSelection(); var locAll = document.querySelector('#speed-test-location-all'); locAll.addEventListener('click',handleLocationSelectAll); var locNone = document.querySelector('#speed-test-location-none'); locNone.addEventListener('click',handleLocationSelectNone); } function renderLocationInput(ct,cfg){ var inputId = cfg.key + '_checkbox'; var checked = cfg.notChecked ? '' : 'checked' ct.innerHTML = '<div class="wrapper">'+ '<input id="'+inputId+'" value="'+cfg.key+'" type="checkbox" '+checked+' />'+ '<label for="'+inputId+'">'+cfg.name+'</label>'+ '</div>'; var input = ct.querySelector('input'); if(cfg.group){ input.dataset.group = cfg.group; input.addEventListener('change',handleLocationSelect); } else{ input.addEventListener('change',handleLocationSelectGroup); } } function isLocationLoaded(loc){ var isLoaded = getData({loc:loc,api:'v2'},'isLoaded'); return isLoaded; } function getLocationRow(loc){ // returns Average row if loc not supplied var rowIndex = loc&&displayData&&displayData[loc]&&displayData[loc].rowIndex||0; var ct = document.querySelectorAll('.SpeedTest_Table tbody tr')[rowIndex]; return ct; } function formatNumber(x){ var parts = x.toString().split("."); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); return parts.join("."); } function updateData(data,query,propName){ var loc = query.loc; var api = query.api; if(propName){ !displayData[loc].data[api]&&(displayData[loc].data[api] = {}); displayData[loc].data[api][propName] = data; } else{ displayData[loc].data[api] = data; } } function getData(query,propName){ var loc = query.loc; var api = query.api; var data = displayData[loc].data[api]; return data?(propName?data[propName]:data):null; } function queueRequest(url,data,onsuccess,onerror,query){ requestQueue.push({ url: url, data: data, onsuccess: onsuccess, onerror: onerror, query: query }); } function sendNextRequest(){ if(pendingRequestCount < maxRequestCount){ var req = requestQueue.shift(); req&&sendRequest(req.url,req.data,req.onsuccess,req.onerror,req.query); } } function sendRequest(url,data,onsuccess,onerror,query){ if(pendingRequestCount >= maxRequestCount){ queueRequest(url,data,onsuccess,onerror,query); return; } var params = Object.keys(data).map(function(key) { return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]) }).join('&'); (domainFiltered(data.url)?Promise.reject():fetch(url+'?'+params)) .then(function(res){ return res.ok?res.json():(res.statusText||res.status); }) .then(function(ret){ if(onsuccess){ onsuccess(ret,query); }else{ throw(ret); } }) .catch(function(error){ //if(errorCount===0) // alert('Service is unavailable at the moment. Please try again later or contact our support.'); errorCount++; // treat as timeout handleTasksTimeout(query); console.error('API error',errorCount,query); console.error(error); if(onerror){ onerror(error,query); } }) .finally(function(){ pendingRequestCount--; checkEndTest(); }); pendingRequestCount++; } function checkEndTest(){ if(pendingRequestCount>0||requestQueue.length>0){ sendNextRequest(); } else if(isLoadingComplete()){ renderAverage(); renderDeviation(); // inputCt.removeAttribute('disabled'); } } function isLoadingComplete(loc){ if(loc){ var row = getLocationRow(loc); return row.className.indexOf('loading')===-1&&row.className.indexOf('pending')===-1&& row.querySelectorAll('.loading,.pending').length===0; } return document.querySelectorAll('.loading,.pending').length===0; } function isLocationError(loc){ var row = getLocationRow(loc); return row.className.indexOf('error')>=0; } function renderDomain(domain){ var ct = inputCt; ct&&(ct.value = domain); var linkCt = document.getElementById('code-test-link'); var href = linkCt.getAttribute('href')||''; linkCt.setAttribute('href',href.split('?').shift()+'?domain='+encodeURIComponent(domain)); // top domain component update var topDomainCt = document.querySelector('#site-scan-domain'); topDomainCt&&(topDomainCt.innerHTML = normalizeTestUrl(domain)); var topLinkCt = document.querySelector('#site-scan-url-link'); topLinkCt&&(topLinkCt.setAttribute('href',prependUrlProtocol(domain,true))); } /*handlers*/ function onClickLocation(event){ if(domain){ var target = event.target; var loc = target.parentElement.dataset.loc||''; /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ // if(isLocationError(loc)){ // startTest(loc); // }else if(isLoadingComplete(loc)){ // openWaterfall(loc); // } startTest(loc); /* TEMP UPDATE TO ALWAYS SHOW RETRY BUTTON */ } } function onClickLoadingTime(event){ if(domain){ var target = event.target; var slow = target.dataset.slow; var showingTooltip = target.dataset.showingTooltip; if(slow){ if(showingTooltip){ if(window.GSPopupForm){ delete target.dataset.showingTooltip; hideResultToolTip(); GSPopupForm.showPopup(domain); } } event.preventDefault(); event.stopImmediatePropagation(); return false; } var loc = target.parentElement.dataset.loc||''; if(isLocationError(loc)){ // }else if(isLoadingComplete(loc)){ openWaterfall(loc); } } } function onClickSlowResource(event){ if(domain){ var target = event.target; var slow = target.dataset.slow; var showingTooltip = target.dataset.showingTooltip; if(slow){ if(showingTooltip){ if(window.GSPopupForm){ delete target.dataset.showingTooltip; hideResultToolTip(); GSPopupForm.showPopup(domain); } } event.preventDefault(); event.stopImmediatePropagation(); return false; } } } function onLoadApiSuccess(ret,query){ updateData(ret,query,'ret'); if(!isNaN(ret)){ loadTaskApi(query,ret); renderLocationClass(query.loc,'pending',query.api); } else{ throw(ret); } } function onLoadApiError(ret,query){ updateData(true,query,'error'); var loc = query.loc renderLocationClass(loc,'error loaded'); } function onLoadTaskSuccess(ret,query){ updateData(ret,query,'ret'); var tasks = ret.data&&ret.data.tasks; if(ret.success){ if(!tasks){ return handleTasksPending(tasks,query); }else{ switch(parseInt(tasks.status)){ case 0: // pending handleTasksPending(tasks,query); break; case 1: // loaded handleTasksLoaded(tasks,query); break; default: // timeout handleTasksTimeout(query); break; } } } else{ throw(ret); } } function onLoadTaskError(ret,query){ } function handleTasksPending(tasks,query){ var counter = (getData(query,'retrycount')||0) + 1; updateData(counter,query,'retrycount'); if(counter < cfg.maxTimeoutRetryLimit){ var timer = window.setTimeout(function(){loadTaskApi(query);},cfg.loadTasklistInterval); updateData(timer,query,'timeoutid'); } else{ handleTasksTimeout(query); } } function handleTasksLoaded(tasks,query){ updateData(true,query,'isLoaded'); locData[query.loc] = {name:query.loc,performance:{data:tasks.webperformanceResult}}; var api = query.api; renderPerformanceData(tasks,query); renderLighthouseData(tasks,query); renderLocationClass(query.loc,'',api); } function handleTasksTimeout(query){ updateData(true,query,'timeout'); updateData(true,query,'isLoaded'); var api = query.api; var loc = query.loc; renderLocationLoaded(loc); } var toolTipColumns = [0,1,5,6]; var toolTipColumnCfg = { 0: { default: 'Rerun Location', }, 1: { default: 'View Waterfall', slow:'Error: Page Too Slow. Accelerate to ~${time} secs. Click here to fix.', }, 5: { slow: 'Error: Page not loading fully. Click here to fix this.', }, 6: { slow: 'Error: Page not loading fully. Click here to fix this.', }, }; function addTooltipListeners(){ var tds = document.body.querySelectorAll('td'); for(var i=0,td;td=tds[i];i++){ td.addEventListener('mouseenter',handleMouseEnterForTooltip); td.addEventListener('mouseleave',handleMouseLeaveForTooltip); td.addEventListener('touchstart',handleMouseEnterForTooltip); } window.addEventListener('scroll',hideResultToolTip); } function handleMouseEnterForTooltip(event){ var target = event.target; if(target.tagName=='TD'){ var siblings = []; for(var i=0,child;child=target.parentElement.children[i];i++){ siblings.push(child); } var idx = siblings.indexOf(target); if(toolTipColumns.indexOf(idx)>=0){ showResultTooltip(idx,target); setTimeout(function(){ target.dataset.showingTooltip = true; },1); } } } function handleMouseLeaveForTooltip(event){ var target = event.target; if(target.dataset.showingTooltip){ delete target.dataset.showingTooltip; hideResultToolTip(); } } function showResultTooltip(idx,ct){ if(ct.parentElement.className.indexOf('loaded')<0) return; var toolTipCt = document.querySelector('#resultTableTooltipDiv'); if(!toolTipCt){ toolTipCt = document.createElement('div'); toolTipCt.id = 'resultTableTooltipDiv'; document.body.appendChild(toolTipCt); } var cfg = toolTipColumnCfg[idx]; if(cfg){ var message = cfg.default; var slow = ct.dataset.slow; if(slow){ message = cfg.slow; } if(message){ toolTipCt.innerHTML = substitute(message,{ time: ct.dataset.improvement||'-', }); var box = ct.getBoundingClientRect(); toolTipCt.style.display = ''; toolTipCt.style.left = (box.left + box.width) + 'px'; toolTipCt.style.top = box.top + 'px'; } } } function hideResultToolTip(){ var toolTipCt = document.querySelector('#resultTableTooltipDiv'); if(toolTipCt){ toolTipCt.style.display = 'none'; } } function handleLocationSelect(event){ var target = event.target; var group = target.dataset.group; var ct = document.querySelector('#speed-test-location-wrapper'); var inputs = ct.querySelectorAll('tbody input[data-group="'+group+'"]'); var groupInput = ct.querySelector('thead input[value="'+group+'"]'); var status = calculateInputSelectionStatus(inputs); groupInput.checked = status.all; handleCalculateLocationTopSelection(); } function handleLocationSelectGroup(event){ var target = event.target; var group = target.value; var isChecked = target.checked; var inputs = document.querySelectorAll('#speed-test-location-wrapper tbody input[data-group="'+group+'"]'); for(var i = 0,len = inputs.length;i<len;i++){ inputs[i].checked = isChecked; } handleCalculateLocationTopSelection(); } function handleLocationSelectAll(event){ var locAll = document.querySelector('#speed-test-location-all'); var locNone = document.querySelector('#speed-test-location-none'); if($(locAll).hasClass('_selected')) return; var inputs = document.querySelectorAll('#speed-test-location-wrapper input'); for(var i = 0,len = inputs.length;i<len;i++){ inputs[i].checked = true; } $(locAll).addClass('_selected'); $(locNone).removeClass('_selected'); } function handleLocationSelectNone(event){ var locAll = document.querySelector('#speed-test-location-all'); var locNone = document.querySelector('#speed-test-location-none'); if($(locNone).hasClass('_selected')) return; var inputs = document.querySelectorAll('#speed-test-location-wrapper input'); for(var i = 0,len = inputs.length;i<len;i++){ inputs[i].checked = false; } $(locAll).removeClass('_selected'); $(locNone).addClass('_selected'); } function handleCalculateLocationTopSelection(){ var ct = document.querySelector('#speed-test-location-wrapper'); var groups = ct.querySelectorAll('thead input'); var status = calculateInputSelectionStatus(groups); var locAll = document.querySelector('#speed-test-location-all'); var locNone = document.querySelector('#speed-test-location-none'); if(status.all){ $(locAll).addClass('_selected'); $(locNone).removeClass('_selected'); } else if(status.none && !document.querySelector('#speed-test-location-wrapper input:checked')){ $(locAll).removeClass('_selected'); $(locNone).addClass('_selected'); } else{ $(locAll).removeClass('_selected'); $(locNone).removeClass('_selected'); } } function handleCalculateLocationGroupSelection(value){ var ct = document.querySelector('#speed-test-location-wrapper'); var selector = 'thead input' + (value ? ('[value="'+value+'"]') : ''); var groups = ct.querySelectorAll('thead input'); groups.forEach(function(groupInput){ var group = groupInput.value; var uncheckedInputs = ct.querySelector('tbody input[data-group="'+group+'"]:not(:checked)'); groupInput.checked = !(uncheckedInputs); }); } function calculateInputSelectionStatus(inputs){ var all = true; var none = true; for(var i = 0,len = inputs.length;i<len;i++){ if(inputs[i].checked){ none = false; } else{ all = false; } } return { all: all, none: none, }; } function isLocationSelected(loc){ var input = document.querySelector('#'+loc+'_checkbox'); return input.checked; } function normalizeTestUrl(url){ return url&&url.replace(/%23/g,'#'); } function sanitizeTestUrl(url){ return url&&url.replace(/#/g,'%23'); } /* init */ renderLocationInputs(); addEventListeners(); if(getURLParameterByName('site')&&getURLParameterByName('site')!=''){ renderUpdatePageSection(); startScan(true); } }); </script> <style> body:not(.speed-test-started) #benefits-posttest { display: none; } body.speed-test-started #benefits-pretest { display: none; } div#resultTableTooltipDiv { position: fixed; pointer-events: none; transform: translate(calc(-50% - 15px),-100%); z-index: 100; background: #1d1d1d; color: #fff; padding: 8px 12px; font-size: 12px; border-radius: 4px; } div#resultTableTooltipDiv:after { content: ''; border: 8px solid transparent; position: absolute; top: 100%;left: 50%;transform: translate(-50%); border-top-color:#1d1d1d; } </style> <script lift-id="analytics"> $(window).on('load', function(){ var sessionUuid = localStorage.getItem("sessionUuid") || ''; var userUuid = localStorage.getItem("userUuid") || ''; var magazineUserId = Page.params.magazineUserId; var url = location.pathname + location.search; var referral = document.referrer; var userAgent = navigator.userAgent; var lang = navigator.language || navigator.languages[0] || ''; poca.Ajax.send({ url: '/api2/business/site/analytics/pageview', data: { sessionUuid: sessionUuid, magazineUserId: magazineUserId, userUuid: userUuid, url: url, referral: referral, userAgent: userAgent, lang: lang }, success: function(ret){ if(ret.success){ localStorage.setItem('sessionUuid', ret.data.sessionUuid); localStorage.setItem('userUuid', ret.data.userUuid); Page.pageViewId = ret.data.pageViewId; } } }); }); $(window).on('unload', function(){ var sessionUuid = localStorage.getItem("sessionUuid") || ''; var fd = new FormData(); fd.append("sessionUuid", sessionUuid); fd.append("id", Page.pageViewId); navigator.sendBeacon( '/api2/business/site/analytics/pageview/leave', fd ); }); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10