Există vreun avantaj REAL atins de utilizarea bibliotecii găzduite de Google jQuery? Sau trebuie doar să-l descărcăm pe serverul nostru?
Care sunt părerile dvs. despre acest lucru?
Comentarii
- Un simplu google căutarea va oferi răspunsul …
Răspuns
Există două avantaje majore în utilizarea unui CDN extern precum Google să găzduiască jQuery:
- Este „mai rapid. Va fi cu siguranță să fie mai rapid decât site-ul dvs. și probabil mai rapid decât orice CDN pe care l-ați configurat singur.
- Este posibil ca să fie deja în cache . O mulțime de site-uri fac referință la jQuery și pe CDN-ul Google, așa că, dacă au vizitat un alt site cu acesta înainte de al tău, nu vor fi nevoie chiar să îl descarce.
Potențial dezavantaje:
- Domeniul poate fi blocat (acest lucru este destul de frecvent în locuri precum China ). Puteți rezolva acest lucru având o alternativă locală ( vezi re pentru cum ).
- fragmentarea a numerelor de versiune este destul de mare, deci vizitatorii site-ului dvs. pot avea în cache multe versiuni diferite, dar nu și la cea la care ați făcut referire ( consultați aici pentru câteva statistici recente ). Aceasta este doar o problemă la încărcarea primei pagini.
Comentarii
- Puteți posta o referință pentru cum să configurați un rezolvare locală?
- După cum subliniază Zistolen anterior, un alt avantaj este că va descărca în paralel cu site-urile dvs. web alte active. S-ar putea să doriți să adăugați acest lucru și la acest răspuns altfel grozav.
- Că ‘ este puțin înșelător. Browserele descarcă active în paralel, indiferent de locul în care sunt găzduite, dar există o limită a numărului de lucruri pe care ‘ le vor descărca de la aceeași gazdă simultan.
- Am omis că, la fel de sincer, ‘ nu este nici aici, nici acolo – fișierul poate fi descărcat în paralel, dar ‘ este, de asemenea, un supliment Căutare DNS. În plus, oricare dintre diferențele de timp pe care le face oricare dintre acestea este oricum neglijabilă.
- Destul de corect. Dar în cazul conexiunilor rapide, nu poate rezulta un timp de încărcare total mai rapid, deoarece se poate utiliza mai mult din ” conductă „?
Răspuns
Un alt dezavantaj:
Utilizarea unui CDN permite operatorului CDN să urmărească vizitatorii site-urilor. De aceea nu costă bani.
Comentarii
- Urmărire sigură, dar nu și vizitatori: ambele jquery ‘ propriile și google ‘ s jQuery CDN sunt găzduite pe domenii care nu ‘ setează sau utilizează cookie-uri (acesta este probabil, de asemenea, o optimizare a performanței) și ‘ nu are informații cu adevărat identificabile în cerere. Furnizorul CDN poate obține o idee despre adresele IP și unele statistici despre șirurile de agenți de utilizator și refereri. Acest lucru este probabil valoros, dar ‘ nu reprezintă în sine un risc imens de confidențialitate (dacă aceste înregistrări ar fi corelate cu o altă bază de date – spunem anunțuri personalizate difuzate în momente similare – atunci poate ar putea fi un mijloc de urmărire).
- Cred că se poate lua de la sine înțeles (în cazul google), că datele sunt corelate cu alte baze de date, deoarece aproape toată lumea folosește google pentru a căuta tot timpul. Același lucru cu fonturile google: am încercat recent să găzduiesc în mod automat fonturile pe un server, dar am aflat că este foarte greu să o faci. Google nu interzice acest lucru (Open Source), dar nu vă ‘ vă oferă fișierele într-un mod gata de utilizare: le puteți compila singuri (dar există fără makefile) sau puteți falsifica cereri către serverele utilizate pentru a le livra în mod normal. Ambele nu sunt realizabile pentru un non-tehnician.
- Poate. Nu ‘ nu am informații privilegiate, deci este greu de spus cu siguranță ‘. ‘ Sunt sigur că ‘ voi fi buggy și am lacune semnificative, totuși: majoritatea locurilor pe care folosesc internetul sunt NAT, și mai multe au destul de mulți utilizatori cu mașini similare (probabil șiruri UA identice) – ‘ ar fi imposibil să știm care cerere vine de la cine. Și, bineînțeles, ceea ce, cu butoanele de adsense și partajare socială, pot avea aproape întotdeauna un mijloc mai fiabil, așa că îmi pot imagina că nu se deranjează. În ceea ce privește fonturile – ‘ le-am descărcat de mai multe ori, așa că nu ‘ nu înțeleg prea bine ce vrei să spui prin faptul că este greu?
- Pentru a fi clar: ‘ presupun că majoritatea vizitelor pe site pe care le efectuați pot și vor fi urmărite de marii colecționari de stat în virtutea butoane de partajare socială (destul de răspândite) și reclame, care sunt aproape peste tot. Așadar, mă întreb cât de valoroasă este informația înșelătoare din solicitările js puternic memorate în cache – pariez ‘, nu prea, de aceea presupun că nu au ‘ nu vă deranjează să încercați să identificați personal persoanele care utilizează JS deservite de CDN.
- Nu este atât de cache pe cât s-ar crede – Când încorporați fonturi folosind modul preferat de Google prin inserarea unui link CSS la fonts.googleapis. com, fiecare vizualizare a paginii deschide o conexiune la google (le puteți vedea în Firebug). Nu contează ‘ dacă este stocat în cache sau nu. În ceea ce privește descărcarea: mă puteți îndrepta către un loc unde pot descărca fonturile în format eot, woff, ttf și svg de înaltă calitate (aceleași versiuni pe care le oferă Google, fără convertoare externe)?
Răspuns
Utilizarea CDN (urilor) pentru a împărți dependențele dvs. pe mai multe servere ca aceasta reprezintă, în esență, un compromis între lățimea de bandă și latența, presupunând că vă pasă doar despre performanță.
Întâmplător presupun că alternativa nu o pur și simplu găzduiește local, ci o concatenează cu o cerere locală diferită – de obicei nu există motive întemeiate să nu concatenăm când poți.
Dacă lățimea de bandă este infinită, atunci cel mai bine este să nu partajați, deoarece veți fi la fel de lent ca serviciul dvs. cel mai lent – deoarece latențele nu sunt perfect previzibile, cu suficiente servicii, chiar dacă acestea sunt „rapide”, aveți nevoie doar de un pic de ghinion pentru a provoca o încărcare lentă a paginii.
Dacă latența este 0, atunci răspândirea încărcării dvs. pe mai multe servere poate îmbunătăți lățimea de bandă utilizând multe serviri rs (nu este atât de util, deoarece limitările lățimii de bandă sunt aproape de clienți, nu de servere), dar, mai important, poate reduce cantitatea de date transmise ușor prin creșterea eficienței memorării în cache.
Depinde de scenariul dvs., dar în general, m-aș aștepta ca latența să fie mai mult o problemă decât lățimea de bandă, cu excepția cazului în care scripturile dvs. sunt extrem de uriașe (ceea ce nu este jQuery). În acel moment, este de obicei mai rapid să găzduiești jQuery ca parte a unui fișier local concatenat.
Motivele pentru care nu găzduiești local sunt, de exemplu, atunci când plătești pentru lățimea de bandă sau când ești găzduit pe un server lent ( conexiunea dvs. cu clientul este blocată de partea dvs., nu de client, sau știți că clienții dvs. vor avea o lățime de bandă foarte scăzută (DSL sau modemuri low-end, să zicem – telefonul mobil tinde să aibă mai multe probleme de latență decât problemele de lățime de bandă) , sau clienții dvs. plătesc pentru lățimea de bandă (de exemplu, mobilă), iar scripturile reprezintă o porțiune atât de vizibilă, încât importanța în cache minoră câștigă (puțin probabil).
În orice caz: mult mai relevant va fi dacă vă Am acoperit mai întâi elementele de bază; anteturi de cache corespunzătoare, concatenare, minimizare și gzip (preferabil cu un raport de compresie ridicat). Și iată că este punctul central: dacă NU „faceți asta, atunci cel puțin CDN o va face, astfel încât să câștige …
TL; DR: Dacă aveți concatenare + minificare + gzipping + cache toate acoperite, atunci servirea locală a scripturilor mici este mai rapidă decât de pe un CDN în ciuda performanței mai bune a CDN – dar numai dacă ți-ai făcut temele, probabil nu pe prima încărcarea paginii și există cu siguranță excepții de la această regulă.
Comentarii
- De altfel, există unele tăieri de octeți câștigate folosind o singură cerere: antetele se ridică la aproape 1kb, ceea ce, cu o încărcătură utilă de 28k, nu este nimic. Gzip funcționează mai bine cu mai mult context, ceea ce economisește încă 0,5k. TCP, DNS, HTTPS overheads pot toate adăugați cu ușurință un KB aici sau acolo și, mai rău, RTT ‘ s. ‘ de ce pentru fișierele mici ca acesta un CDN este un nu ca. cât de repede s-ar putea crede.
Răspuns
Utilizarea bibliotecii găzduite de jQuery de către Google permite ca pagina dvs. să fie încărcat mai repede. Într-adevăr, biblioteca este încărcată în același timp al paginii dvs. în loc de după.
Comentarii
- Dar cum afectează încărcarea paginii?
- Bibliotecile locale sunt, de asemenea, încărcate în timp ce pagina este încărcată – În ambele cazuri descărcarea activului începe atunci când browserul (modern) vede fragmentul de cod care declanșează descărcarea, ceea ce se întâmplă de obicei înainte ca întregul document să fie descărcat . Vedeți această captură de ecran Firebug pentru un exemplu