Używam CSS do umieszczania wielu moich zdjęć (jako tła <div>
) i często stwierdzam, że ładują się one bardzo powoli w ten sposób. Wydają się być ostatnią rzeczą do załadowania. Nawet małe, małe ikony wyświetlają się w ten sposób. Czy istnieje sposób, aby określić przeglądarkę jako priorytet obrazów? Czy może pobrać wcześniej obrazy z pliku CSS i renderować je wcześniej?
13
Odpowiedzi:
CSS służy do stylizacji, a nie treści. Przeglądarki (słusznie) próbują wyświetlać zawartość przed dodaniem stylów, dlatego powód, dla którego obrazy w arkuszach stylów są zwykle pobierane jako ostatnie. Jeśli obrazy są ważne dla treści, dodaj je za pomocą standardowych
<IMG>
tagów HTML .źródło
Użyj bezwzględnych identyfikatorów URI z arkusza stylów i dodaj obrazy z tagów IMG do ukrytego
<div>
na stronie (zakłada to, że używasz tych samych obrazów na każdej stronie; najlepiej w stopce, aby wszystkie były ładowane i buforowane przy każdym wywołaniu strony ).Obrazy na stronie mają pierwszeństwo, a po buforowaniu obrazów będą renderowane natychmiast po kolejnych żądaniach strony.
źródło
W przypadku przeglądarek obsługujących typ identyfikatora URI danych (informacje można znaleźć na stronie http://en.wikipedia.org/wiki/Data_Uri ), aby uwzględnić obraz w samym CSS.
Ma to jednak kilka wad:
źródło
W tej chwili nie ma możliwości określenia, które pliki należy pobrać jako pierwsze. Do Twojej wiadomości, obrazy określone w plikach CSS jako obrazy tła są pobierane jako ostatnie, prawdopodobnie dlatego, że przeglądarka widzi je jako niezawierające treści, a zatem ma niższy priorytet, więc unikaj ich używania do ważnych obrazów, które chcesz szybko załadować.
źródło
Używaj duszków CSS , szczególnie w przypadku ikon.
źródło
Zrób zdjęcia tak małe, jak to możliwe. Możesz użyć smush.it, aby usunąć niepotrzebne bajty.
źródło