2012-06-10 24 views
10

Istnieje kilka świetnych narzędzi do tworzenia stron internetowych, które ułatwiają życie programistom. Aplikacje takie jak LiveReload i CodeKit są świetnymi przykładami.Jak LiveReload (i inne podobne aplikacje) działają technicznie?

Wszystko, co mnie interesuje, to sposób, w jaki robią przeładowanie strony na żywo w przeglądarce (np. Chrome, Firefox lub coś w tym rodzaju) z poziomu samej siebie, gdy zmiany plików są zapisywane na dysku twardym.

Jak oni faktycznie to robią? Czy są jakieś interfejsy API, które wystawiają producenci przeglądarek, aby to wykonać? lub po prostu niestandardowy skrypt po stronie serwera, który jest wstrzykiwany na stronę WWW (w rzeczywistości nie jest napisany przez programistę) zanim dotrze do przeglądarki, a niektóre magia Ajax dzieje się, gdy plik zostanie zmieniony na dysku.

Mam zamiar opracować coś takiego w Pythonie lub Vala (Linux) i .NET (Windows), więc proszę dać mi znać, jeśli istnieje jakaś dokumentacja dostępna do tego.

Odpowiedz

1

Są to zwykle (zawsze?) Oparte na dość prostej koncepcji - co jakiś czas niektóre wyzwalacze kodu klienta, które pytają o skrypt serwera, jeśli plik został zaktualizowany. Jeśli i tylko jeśli tak, to załaduje stronę - lub, w przypadku niektórych witryn (myślę, że SO i niektóre serwisy społecznościowe), pobiera tylko nowe informacje i ładuje je na miejscu.

Dla przypadku, który opracowuje się w lokalnej piaskownicy, mogą one również czasami nasłuchiwać zmian w plikach systemu OS, zamiast konieczności posiadania serwera zdolnego do reagowania na żądania AJAX. Większość systemów operacyjnych zapewnia takie sygnały - na przykład w systemie Linux masz inotify. Z ich strony internetowej wynika, że ​​LiveReload używa takiego systemu - część ich zestawów to zestaw wtyczek do przeglądarek, które prawdopodobnie zapewniają interfejsy API JavaScript dla usług systemu operacyjnego i dostosowują reguły sandbox przeglądarki, aby na to zezwolić.

+0

Gdzie mogę uzyskać krótką dokumentację wykonującą coś takiego? – Kushal

+0

@Kush API powiadomień tendencja, AFAIK, jest dość specyficzna dla systemu operacyjnego. Musisz więc szukać odpowiedniej dokumentacji platformy - mam nadzieję, że pojawi się ktoś inny, kto zna szczegóły lepiej niż ja. – lvc

3

Od LiveReload FAQ:

Aby komunikować się z przeglądarkami, LiveReloads potrzebuje kodu JavaScript być wstrzykiwane do swoich stron internetowych. Istnieją 3 sposoby, aby zorganizować że:

  1. albo dodać tag skryptu do kodu HTML ręcznie lub
  2. zainstalować rozszerzenie przeglądarki (które po aktywacji dodaje tag skryptu do odwiedzanych stron na fly), lub
  3. użyć wtyczki do swojej struktury internetowej (która dodaje tag skryptu w locie podczas serwowania żądań), obecnie dostępne tylko dla Rails/Rack.

Również wiem, że to pytanie jest stary, ale także dla tych, którzy szukają tu mamy „livereload pytona”, istnieje wielka LiveReload server written in python.