2013-03-04 16 views
14

Używam nagłówka zakresu HTTP (specs).Czy mogę użyć nagłówka zakresu HTTP, aby załadować częściowe pliki "celowo"?

Z tego co rozumiem, mogę ustawić zakresy bajtów plików ala

0-199/2000 
200-499/2000 
500-799/2000 
etc 

Pytanie:
Say I tylko chcesz uzyskać dostęp do pewnych zakresów pliku byłoby możliwe określenie tych zakresów i następnie pracować z "niepełnymi" danymi, które otrzymałem? Używam filtrowania dużego pliku dziennika, więc jestem ciekawy, czy coś takiego działa.

Dzięki za dane wejściowe!

+1

Wydaje mi się, że to idealny przypadek użycia tego nagłówka. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2 – Supericy

+0

Tak, myślę, że został opracowany dokładnie w takich przypadkach. Czy nie próbowałeś, jeśli to działa? – VisioN

+0

Jak już wspomniano, to jest dokładnie to, do czego są przeznaczone żądania zakresu. Zasadniczo w ten sposób odbywa się "streaming" mediów za pośrednictwem HTTP. – rdlowrey

Odpowiedz

17

Masz rację, link, który zamieściłeś w komentarzu, prawdopodobnie byłby najlepszy. Ponieważ twoje pytanie brzmiało interesująco, wypróbowałem to. Prawdopodobnie zrobiłeś to, ale tutaj jest urywek (dla innych, które mogą wyglądać)

var xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","data.dat",false); 
xmlhttp.setRequestHeader("Range", "bytes=100-200"); 
xmlhttp.send(); 
console.info(xmlhttp); //--> returns only the partial content 
// Tested on Win7 with chrome 46+ 
+0

tak. to miłe. Ja też się z tym bawię. Ciekawy sposób ustawiania jednostek niestandardowych, w tym logiki powiązanej. – frequent

+1

Zakładam, że jednostki niestandardowe wymagałyby skryptowania/programowania w Serverside i deponowania na serwerze WWW i języku programowania. tutaj jest podobne pytanie/odpowiedź/approche/podpowiedź/... [link] (http://stackoverflow.com/questions/1434647/using-the-http-range-header-witha-a-range-specifier-other -than-bytes) :). –

+0

Dzięki za link! – frequent

Powiązane problemy