Zbudowałem suwak obrazu (oparty na wspaniałym bxSlider), który wstępnie ładuje obrazy dokładnie w czasie, zanim zostaną one wyświetlone. Już działa całkiem dobrze, ale nie sądzę, że moje rozwiązanie jest poprawne HTML.Puste zdjęcie zakodowane jako dane-uri
Moja technika wygląda następująco: Generuję znacznik suwaka, wstawiając jak zwykle pierwszy obraz slajdu (z <img src="foo.jpg">
), a kolejne obrazy są przywoływane w atrybucie danych, takim jak <img data-orig="bar.jpg">
. JavaScript w razie potrzeby żongluje zmianą data-orig -> src
, co powoduje wstępne ładowanie.
Innymi słowy, mam:
<div class="slider">
<div><img src="time.jpg" /></div>
<div><img src="data:" data-orig="fastelavn.jpg" /></div>
<div><img src="data:" data-orig="pels_strik.jpg" /></div>
<div><img src="data:" data-orig="fashion.jpg" /></div>
</div>
Aby uniknąć pustych src=""
atrybuty (które są harmful to performance w some browsers), mam wstawiony src="data:"
skutecznie wstawić pusty obraz jako zastępczy.
Chodzi o to, że nie mogę znaleźć niczego w numerze documentation for data-URI, informując, czy jest to poprawny identyfikator URI danych, czy też nie. Zasadniczo potrzebuję minimalnego identyfikatora URI danych, który rozdziela się na pusty/przezroczysty obraz, aby przeglądarka mogła natychmiast rozpoznać src i przejść dalej (bez błędu lub żądania sieci). Może src="data:image/gif;base64,"
byłoby lepiej?
Wystarczy użyć pustego hasha. http://stackoverflow.com/a/28077004/3841049 – iGidas
@iGidas: zły pomysł, ponieważ wiele przeglądarek faktycznie wykona drugą prośbę na stronie głównej (powodując znacznie gorszy wynik niż oryginalny obraz i tworząc mylące wpisy w twoim logi serwera), spróbuj zinterpretować kod HTML jako obraz, wygenerować błąd i potencjalnie spowodować prawdziwe błędy aplikacji (np. w koszykach/stronach kasy, gdzie "odświeżanie strony" powoduje dodanie do koszyka dodatkowych elementów lub uruchamia środki bezpieczeństwa) –
Co z aktualnym 'data: image/gif; base64,' używanym jako 'src'? Lub nawet krótsze "dane:", kończące się śpiączką. Wydaje się być poprawnym HTML i działa we wszystkich nowoczesnych przeglądarkach bez żadnych błędów. Jakieś argumenty przeciwko używaniu go? – bobo