Útfærsla viðskiptavinar hliðar flutningur netþjóna

Upphaflega höfðu veframmar skoðanir sem gefnar voru upp á netþjóninum. Núna er það að gerast hjá viðskiptavininum. Við skulum kanna kosti og galla hverrar nálgunar.

Frammistaða

Með flutningi hliðarþjóns verður þú að fara út og fá hana þegar þú vilt sjá nýja vefsíðu:

Skýringarmynd af því hvernig flutningur netþjónanna virkar

Þetta er hliðstætt því að þú keyrir yfir á ofurmarkaðinn í hvert skipti sem þú vilt borða.

Með flutningi viðskiptavinarins ferðu einu sinni á ofurmarkaðinn og eyðir 45 mínútum í að kaupa þér fullt af mat fyrir mánuðinn. Þegar þú vilt borða opnarðu bara ísskápinn.

Skýringarmynd af því hvernig flutningur viðskiptavinarins virkar

Hver nálgun hefur sína kosti og galla þegar kemur að frammistöðu:

  • Með flutningi viðskiptavinarins verður upphaf síðuskoðunar hægt. Vegna þess að samskipti um netið er hægt og það tekur tvær hringferðir til netþjónsins áður en þú getur byrjað að birta efni fyrir notandann. En eftir það mun hver síðari hleðsla á síðum loga hratt.
  • Með flutningi hliðarþjóns verður upphafssíðan ekki mjög hæg. En það verður ekki hratt. Og ekki heldur neinn af öðrum beiðnum þínum.

Til að vera nákvæmari, með flutningi viðskiptavinarins, mun upphafssíðan líta svona út:


  
    
    
  
  
    
  

app.js mun hafa alla HTML síður í JavaScript sem strengi. Eitthvað eins og þetta:

var síður = {
  '/': ' ... ',
  '/ foo': ' ... ',
  '/ bar': ' ... ',
};

Þegar síðan er hlaðið mun ramminn skoða vefslóðastikuna, fá strenginn á síðurnar ['/'] og setja hann inn í

. Þegar þú smellir á tengla mun ramminn greina atburðinn, setja nýja strenginn (segjum, síður ['/ foo']) í gáminn og koma í veg fyrir að vafrinn sleppi af HTTP beiðninni eins og venjulega.

SEO

Segjum sem svo að vefskriðillinn okkar byrji að leggja fram beiðni um reddit.com:

var beiðni = krefjast ('beiðni');
request.get ('reddit.com', aðgerð (villa, svar, líkami) {
  // líkami lítur eitthvað svona út:
  // 
  //  ... 
  // 
  //  ESPN 
  //  Hacker News 
  // ... önnur  merki ...
});

Skriðan notar síðan efnið í svarhópnum til að búa til nýjar beiðnir:

var beiðni = krefjast ('beiðni');
request.get ('reddit.com', aðgerð (villa, svar, líkami) {
  // líkami lítur eitthvað svona út:
  // 
  //  ... 
  // 
  //  ESPN 
  //  Hacker News 
  // ... önnur  merki ...
  request.get ('espn.com', fall () {...});
  request.get ('news.ycombinator.com', fall () {...});
});

Eftir það heldur skriðinn áfram með því að nota hlekkina á espn.com og news.ycombinator.com til að halda áfram að skríða.

Hér er nokkur endurkvæma kóða til að gera það:

var beiðni = krefjast ('beiðni');
aðgerð crawlUrl (url) {
  request.get (url, fall (villa, svar, líkami) {
    var linkUrls = getLinkUrls (líkami);
    linkUrls.forEach (fall (linkUrl) {
      crawlUrl (linkUrl);
    });
  });
}
crawlUrl ('reddit.com');

Hvað myndi gerast ef svaraðili lítur svona út:


  
    
    
  
  
    
  

Jæja, það eru ekki allir merkingar sem fylgja má. Einnig lítur þessi vefsíða út fyrir að vera nokkuð bland, þannig að við viljum líklega ekki forgangsraða henni þegar við sýnum leitarniðurstöður.

Fátt veit skriðan, Client Side Framework er að fara að fylla

með fullt af ógnvekjandi efni.

Þetta er ástæða þess að flutningur viðskiptavinarins getur verið slæmur fyrir SEO.

Forgjöf

Árið 2009 kynnti Google leið til að komast í kringum þetta.

https://webmasters.googleblog.com/2009/10/proposal-for-making-ajax-crawlable.html

Þegar vefskriðillinn rekst á www.example.com/page?query#!mystate, myndi hann breyta því á www.example.com/page?query&_escaped_fragment_=mystate. Þannig að þegar netþjóninn þinn fær beiðni með _escaped_fragment_, þá veit hann að beiðnin kemur frá vefskriðli, ekki manneskju.

Mundu - þjónninn vill að skriðinn sjái

...
(með innihaldið inni), ekki
. Svo þá:

  • Þegar beiðnin kemur frá skrið, gætum við þjónað
    ...
    .
  • Þegar beiðnin kemur frá venjulegri manneskju gætum við bara þjónað
    og látið JavaScript setja efni inn.

Það er þó vandamál: netþjónninn veit ekki hvað er að fara í

. Til að reikna út hvað er inni þarf það að keyra JavaScript, búa til DOM og vinna að DOM. Þar sem hefðbundnir netþjónar vita ekki hvernig á að gera það, nota þeir þjónustu sem kallast Höfuðlaus vafri til að gera það.

Snjallari skrið

Sex árum seinna tilkynnti Google að skriðan jókst! Þegar Crawler 2.0 sér