Google fonti nedarbojas Ķīnā - kā to salabot
Iemesls, kāpēc mēs izmantojam Google API, lai kalpotu bibliotēkām, piemēram, jQuery un Web Fonts, ir tas, ka tas kalpo ātri, izmantojot Google uzticamo infrastruktūru. To izmanto gandrīz visur, un tik daudz, ka dažiem lietotājiem jau ir saglabāta kešatmiņa savā pārlūkprogrammā, kas padara bibliotēkas slodzi. pat ātrāk.
Diemžēl tas tā nav Ķīnā. Ķīnas valdība 2014. gadā slēdza piekļuvi daudziem Google pakalpojumiem, tostarp Google API. Iespējams, ka jūsu tīmekļa vietne var būt šķiet daļēji sadalīti Ķīnā, jo Google pieejamie jQuery un tīmekļa fonti ir nepieejami.
Šajā amatā mēs redzēsim, kā apiet Ķīnas "digitālo" Lielo sienu, tāpēc mūsu tīmekļa vietne var darboties kā tā, kā tā tiek skatīta ārpus Ķīnas. Mēs izmantosim alternatīvu fontu bibliotēku, kas atspoguļo Google fontus un bibliotēkas, bet vispirms mums būs jāveic daži pasākumi, lai identificētu lietotājus, kuri ir no Ķīnas..
Lietotāja atrašanās vietas noteikšana
Vispirms mums būs jāatrod, no kurienes ir mūsu apmeklētājs, un mēs to izmantosim, mēs izmantosim šo WIPMania API, kas ļauj izgūt apmeklētāja ģeogrāfisko atrašanās vietu, ieskaitot viņu valsts nosaukumu:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcija (dati) swal ('Jūs esat no', data.address.country););
Mēs izmantojam jQuery $ .getJSON
zvanīt API. Tad mēs iet data.address.country
kas mums pastāstīs, no kurienes apmeklētājs ir. Šeit ir demonstrācija.
Alternatīva tīmekļa fontu avota nodrošināšana
Tāpēc tagad, kad mēs varam ielādēt mūsu apmeklētāju atrašanās vietu, mēs aizstāsim Google fontus ar Useso bibliotēkām, CDN pakalpojumu, kas atspoguļo fontus un bibliotēkas no Google API, lai apkalpotu apmeklētājus no Ķīnas.
Šajā posmā mums joprojām ir mūsu fontu stili, kas norāda uz Google API:
Mēs aizstāsim href
ietvaros saite
elements ar JavaScript funkciju.
funkcija aizstātGoogleCDN () $ ('saite'). katra (funkcija () var $ intial = $ (tas) .attr ('href'), $ aizstāt = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (tas) .attr (' href ', $ aizstāt););
Šī funkcija aizstāj katru saiti, uz kuru atsaukties //fonts.useso.com/
vietā, lai norādītu uz Google API adresi, //fonts.googleapis.com/
.
Funkcija darbosies tikai tad, kad apmeklētājs būs KN
, Ķīnas starptautiskais valsts kods.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcija (dati) if (data.address.country_code == 'CN') substitGoogleCDN ();;
Mēs visi esam noteikti. Tagad apmeklētāji no Ķīnas tiks saņemti fonti caur //fonts.useso.com/
ko nav bloķējusi Ķīnas valdība.