Pagrindinis » Kodavimas » „Google“ šriftai neveikia Kinijoje - kaip ją išspręsti

    „Google“ šriftai neveikia Kinijoje - kaip ją išspręsti

    Priežastis, kodėl naudojame „Google API“, kad tarnautume bibliotekoms, pvz., „JQuery“ ir „Web Fonts“, yra tai, kad ji greitai tarnauja „Google“ patikimose infrastruktūrose. Jis naudojamas beveik visur, ir kai kurie naudotojai gali turėti talpyklą savo naršyklėje, o tai leidžia bibliotekoms įkelti netgi greičiau.

    Deja, taip nėra Kinijoje. 2014 m. Kinijos vyriausybė uždarė prieigą prie daugelio „Google“ paslaugų, įskaitant „Google API“ atrodo iš dalies pažeisti Kinijoje, nes „Google“ talpinami jQuery ir žiniatinklio šriftai yra nepasiekiami.

    Šiame pranešime mes ketiname pamatyti, kaip apeiti Kinijos „skaitmeninę“ didelę sieną, todėl mūsų svetainė gali veikti taip, kaip ji žiūrima už Kinijos ribų. Mes naudosime alternatyvią šriftų biblioteką, kuri atspindės „Google“ šriftus ir bibliotekas, tačiau pirmiausia turėsime imtis tam tikrų priemonių, kad nustatytume naudotojus, kurie iš Kinijos kruša.

    Vartotojo vietos nustatymas

    Visų pirma, mes turėsime rasti, iš kur yra mūsų lankytojas, ir naudosime šią „WIPMania“ API, kuri leidžia ieškoti lankytojo geografinės vietos, įskaitant šalies pavadinimą:

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcija (duomenys) swal ('Jūs esate iš', data.address.country);); 

    Mes naudojame jQuery $ .getJSON skambinti API. Tada mes perduodame data.address.countrykuris turėtų pasakyti mums, iš kur yra lankytojas. Čia yra demo.

    Alternatyvaus interneto šrifto šaltinio teikimas

    Taigi dabar, kai mes galime gauti lankytojo vietą, „Google“ šriftus pakeisime su „Useso“ bibliotekomis, CDN paslauga, kuri atspindi „Google API“ šriftus ir bibliotekas, kad aptarnautų lankytojus iš Kinijos.

    Šiuo metu mes vis dar turime šriftų stilius, rodančius „Google“ API:

      

    Mes pakeisime href viduje nuorodą elementas su „JavaScript“ funkcija.

     funkcija „GoogleCDN“ () $ („nuoroda“). kiekviena (funkcija () var $ intial = $ (tai) .attr ('href'), $ substit = = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (tai) .attr (' href ', $ pakeisti););  

    Ši funkcija pakeičia kiekvieną nuorodą //fonts.useso.com/ vietoj nukreipimo į „Google API“ adresą, //fonts.googleapis.com/.

    Ši funkcija veiks tik tada, kai lankytojas yra KN, Kinijos tarptautinis šalies kodas.

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcija (duomenys) if (data.address.country_code == 'CN') substitGoogleCDN ();); 

    Mes visi esame nustatyti. Dabar lankytojai iš Kinijos bus pristatyti šriftais per //fonts.useso.com/ kurią Kinijos vyriausybė neužblokuoja.