Az ajax-helyek indexelése

Az ajax-helyek indexelése

Joosy fejlődésével együtt. Az AJAX hirtelen - de várhatóan - kitölti az összes olyan projektet, amelyre vállalunk. A paradigma rendkívül sikeresnek bizonyult minden szempontból, kivéve az egyiket. A leginkább klasszikus: "AJAX? Az indexelés? Pfft. ”. Miközben Internet bankokat csinálunk, ez elég kielégítő számunkra. De hogyan nem tagadhatja meg magának ezt a gyönyörködöt a nyílt webes erőforrásokhoz?


A Hashbang egy kisméretű proxy szerver a Ruby-nál, a protokollrácson dolgozik. Az utóbbi azt jelenti, hogy minden Ruby és / vagy Rails-tel együttműködő webszerver beilleszkedik. És azok számára, akik Rails-t használnak, készítettünk egy pár különleges zsemlét. De mindent rendben.

Közös eszköz

Ez azt jelenti, hogy csak az aktuális alkalmazásban kell megváltoztatnia a hívást

Harci módban ez így fog kinézni:

Az ajax-helyek indexelése

A belső böngészőről és a teljesítményről

Sok kísérletet tettünk a "fej nélküli" böngésző lehetséges megvalósításával. Megpróbálták a Watir-t és a meglévő Qt kötéseket. Semmi jó sem történt. Kétségbeesetten írtunk saját kötődésünket a Qt-WebKit-nek, amely csak tudja visszaadni a HTML-t, követve az eseményt: Sunscraper. Ezt a csodát C / C ++ keverékre írják, és a Ruby-hoz kapcsolódik az FFI-n keresztül. Ez azt jelenti, hogy a Sunscraper nemcsak az MRI-n, hanem a JRuby / Rubinius-on is működni fog. Sajnos Rubinius-szal még mindig nem működik a hibák miatt a nagyon FFI.

Mivel minden, amit elindítunk magának a WebKit-motornak, a teljesítmény közel áll a maximálishoz. Valós adatok élő szerverekről a gyűjtési folyamatban.

Telepítés előtt

Fejlesztési mód a síneken lévők számára

Ha nem fejlődsz a Railson, bátran menj a következő bekezdésre, amely megmondja a Hashbang bevezetését a csatába.

A Hashbang egy Rails projekt telepítéséhez a következőket kell tennie:

  1. Add gem hashbang a Gemfile
  2. Generálja az alapalkalmazást a hashbang sínek használatával

Most a Rails alkalmazásban, a hashbang mappában, van egy mini alkalmazás a Hashbang is. Ez azt jelenti, hogy kihagyja az első bekezdést a "telepítés és indítás" részben.

A fejlesztési környezetben a Hashbang a middleware-t a Rails letöltésbe helyezi, amely elfogja az összes kérést, amely tartalmazza a _escaped_fragment_ mágikus fragmentumot, és automatikusan feldolgozza azokat. A probléma csak egy: a Webrick egy szálon működik. És mivel Hashbang "önmagát" kéri, ez a patthelyzethez vezet. Ezért az aktuális alkalmazás helyi teszteléséhez futtassa azt rake hashbang: railrel. Ez a parancs két szálon indítja el az alkalmazást az Unicorn szerveren. Indítás után - localhost: 3000 /? _ Escaped_fragment_ - és ellenőrizze a HTML-t. Ne felejtsük el, hogy magának az AJAX alkalmazásnak is hívnia kell a Sunscraper.finish () -ot.

Beállítás és üzembe helyezés

Ha nem használja a Rails szolgáltatást, akkor az alapalkalmazás egy speciális adattárból származhat. Mindössze annyit kell tennie, hogy valahol helyezze el, győződjön meg róla, hogy telepítve van a gem bundler, és csomagot telepít az alkalmazás gyökerére.

A generált / másolt Hashbang alkalmazásban a config.rb fájl található, amelyet a hatékony működés érdekében szerkeszteni kell. Csak két irányelv van benne:

  • url. A kért URL-nek megfelelő szabályos kifejezés
  • timeout. időtúllépés ezredmásodpercben, amely a hasbbang vár a Sunscraper.finish () eseményre

Tegyük fel, hogy a Passenger modul használatával elindítjuk a szolgáltatást. amely a Nginx-on alapuló Rack-ra épül. Ebben az esetben a helyes munkavégzéshez a következőket kell elérnünk:

A szomorú

Sajnálatos módon a natív bentlakók, a Yandex, ez a szabvány nem érte el. Ezt a Google támogatja, ezt a Bing (és ezáltal a Yahoo) támogatja. Még Facebook robot is, amely támogatja. És Yandex - nem. Ez azt jelenti, hogy a Hashbang nem segít az indexálásnak az internet belföldi szegmensében. Legalábbis most. A jó dühös sugarakat irányítjuk a Yandex csapat felé, és szeretnénk, ha gyorsan megvizsgálnák a web aktívan fejlődő technológiai szegmenseit :).

Végezetül

Annak ellenére, hogy a Hashbang-ot már harcban használjuk, nem minden lehetséges konfigurációban halmoztuk fel. Ha problémái vannak az összeszerelés vagy a hangolás során, akkor mindig örülünk a github új kiadásainak.

Kapcsolódó cikkek