Indexarea site-urilor ajax

Indexarea site-urilor ajax

Împreună cu dezvoltarea lui Joosy. AJAX brusc - dar se așteaptă - a umplut toate proiectele pe care le întreprindem. Paradigma sa dovedit extrem de reușită în toate privințele, cu excepția unei singure. Cel mai clasic: "AJAX? Indexarea? Pfft. “. În timp ce facem bănci pe Internet, acest lucru este destul de satisfăcător pentru noi. Dar cum nu vă puteți nega această plăcere extraordinară pentru resursele Web deschise?








Hashbang este un mic server proxy pe Ruby, care lucrează la protocolul Rack. Ultimul înseamnă că orice server web care lucrează cu Ruby și / sau Rails se va potrivi. Și pentru cei care folosesc Rails, am pregătit niște chifle speciale. Dar despre totul în ordine.

Dispozitiv comun

Aceasta înseamnă că tot ce trebuie să modificați în aplicația curentă este de a apela

În modul de luptă, acesta va arăta astfel:

Indexarea site-urilor ajax

Despre browserul intern și performanța

Am experimentat foarte mult posibilitățile implementării browserului "fără cap". Trial Watir și diferite legături Qt existente. Nu sa întâmplat nimic bun. Disperat, tocmai am scris propria noastră legătură cu Qt-WebKit, care știe doar cum să returneze HTML, urmărind evenimentul: Sunscraper. Este scris acest miracol pe un amestec de C / C ++ și este conectat la Ruby via FFI. Acest lucru înseamnă că Sunscraper ar trebui să funcționeze nu numai pe RMN, ci și pe JRuby / Rubinius. Din păcate, cu Rubinius încă nu funcționează din cauza unor bug-uri în implementarea foarte FFI.

Deoarece tot ce lansăm este motorul WebKit în sine, performanța este aproape de maximul pentru această sarcină. Datele reale din servere live în procesul de colectare.







Înainte de instalare

Mod de dezvoltare pentru cei de pe șine

Dacă nu te dezvolți pe Rails, du-te cu îndrăzneală la următorul paragraf, care îți va spune despre introducerea lui Hashbang în luptă.

Pentru a instala Hashbang într-un proiect Rails, trebuie să faceți următoarele:

  1. Adăugați gem hashbang la Gemfile
  2. Generați aplicația de bază folosind șinele

Acum, în interiorul aplicației Rails, în folderul hashbang există o aplicație mini a lui Hashbang. Și aceasta înseamnă că trebuie să treceți peste primul paragraf din secțiunea "configurare și lansare".

Dezvoltarea-mediu, insertii Hashbang din șine încărcați middleware-ul, care intercepteaza toate cererile care conțin _escaped_fragment_ fragment magic și le procesează în mod automat. Problema este doar una: Webrick lucrează într-un fir. Și din moment ce Hashbang cere "ea însăși", acest lucru duce la impas. Prin urmare, pentru a testa aplicația curentă local, rulați-o cu rake hashbang: rails. Această comandă va lansa aplicația dvs. sub serverul Unicorn în două fire. După pornire - localhost: 3000 /? _ Escaped_fragment_ - și verificați codul HTML. Doar nu uitați că în aplicația AJAX în sine, trebuie să sunați Sunscraper.finish ().

Configurare și pornire

Dacă nu utilizați Rails, aplicația de bază poate fi preluată dintr-un depozit special. Tot ce trebuie să faceți este să o plasați undeva, asigurați-vă că aveți instalat pachetul de bijuterii și faceți instalarea pachetului la rădăcina aplicației.

În interiorul aplicației generate / copiate Hashbang este fișierul config.rb, care trebuie editat pentru o funcționare eficientă. Există doar două directive:

  • URL-ul. Expresia obișnuită că adresa URL solicitată trebuie să se potrivească
  • timeout. timeout în milisecunde, care hashbang va aștepta evenimentul Sunscraper.finish ()

Să presupunem că folosim modulul Pasager pentru a porni serviciul. care implementează lucrul cu Rack bazat pe Nginx. În acest caz, pentru o muncă corectă, trebuie să realizăm următoarele:

Despre cei trist

Din păcate, în penitențele noastre native, Yandex, acest standard nu a ajuns. Este susținută de Google, este susținută de Bing (și, prin urmare, Yahoo). Chiar și crawler pe Facebook și care îl acceptă. Și Yandex - nu. Acest lucru înseamnă că Hashbang nu vă ajută la indexarea pe segmentul intern al Internetului. Cel puțin pentru moment. Scopul nostru este de raze aprige bunătate față de echipa Yandex și doresc să le transforma rapid atenția lor la un astfel de ritm rapid de dezvoltare segment tehnologii tehnologice :) Web.

În concluzie

În ciuda faptului că deja folosim Hashbang în luptă, nu l-am derulat în toate configurațiile posibile. Dacă întâmpinați probleme la asamblarea sau la reglarea acestuia, suntem mereu mulțumiți de noile Probleme ale github-ului.







Articole similare

Trimiteți-le prietenilor: