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:
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:
- Add gem hashbang a Gemfile
- 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.