\documentclass[a4paper, 11pt]{article}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{a4wide}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{color}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{ulem}
\usepackage{listings}
\usepackage{float}
\usepackage[rflt]{floatflt}
\usepackage{tabularx}
\setlength{\parindent}{0pt}
\title{Lazy Loading Images und der Viewport - Vanilla JS}
\usepackage[
pdftitle={Lazy Loading Images und der Viewport - Vanilla JS}
pdfsubject={Lazy Loading nativ, per Observer oder Event gesteuert abhängig von den Fähigkeiten des Browsers den aktuellen Viewport zu ermitteln.}
pdfauthor={Udo Schmal}
pdfkeywords={Lazy Loading, Viewport, Observer, Event, JavaScript}
]{hyperref}
\definecolor{darkblue}{rgb}{0,0,.5}
\hypersetup{pdftex=true, colorlinks=true, breaklinks=true, linkcolor=darkblue, menucolor=darkblue, pagecolor=darkblue, urlcolor=darkblue}
\begin{document}Lazy Loading Images und der Viewport - Vanilla JS
\singlespacing
{\Large \textbf{\label{sec:headline}JavaScript}}

\singlespacing
{\LARGE \textbf{\label{sec:title}Lazy Loading Images und der Viewport - Vanilla JS}}

\singlespacing
{\large \textbf{\label{sec:subtitle}Lazy Loading nativ, per Observer oder Event gesteuert abhängig von den Fähigkeiten des Browsers den aktuellen Viewport zu ermitteln.}}

Inhalte nur zu laden wenn sie wirklich benötigt werden, sorgt nicht nur dafür dass die Seite schneller das Dom-Ready erreicht sondern erspart unter Umständen jede Menge Datentransfer, was nicht nur Google erfreut, sondern auch den Betrachter der Website.

Diese Implementierung bringt eine Filterung aller Bilder auf der Seite mit sich, die im data-src-Attribut einen Inhalt entalten, dieser Wert braucht nur in das src-Attribut verschoben werden sobald das Bild im sichtbaren Bereich auftaucht und auch wirklich sichtbar sein soll.

Einzige Voraussetzung \&lt;img data-src=\&quot;...\&quot; loading=\&quot;lazy\&quot; /\&gt;

Diese Implementierung unterstützt die native Variante \textbf{loading=\&quot;lazy\&quot;} als img Attribute bei einem aktuellen Browser (ab Opera 64, Firefox 75, Chrome 76, Edge 79, Andoid Browser 80, Chrome for Android 80), aber auch den \textbf{IntersectionObserver} bei den etwas äteren (ab Opera 45, Firefox 55, Chrome 58, Edge 16, Safari 12.2, Andoid Browser 80, Chrome for Android 80, ...), sowie eine Variante über \textbf{EventLisener} für die ganz alten Browser wie z.B. den Internet Explorer, dadurch entsteht auch die breiteste Abdeckung für Lazy Loading. Zusätzlich wurde das Laden der Bilder vor dem Ausdrucken mit eingebaut, welches bisher von keinem Browser als Standard zur Verfügung gestellt wird.

\href{https://www.gocher.me/code/viewport.js}{viewport.js}

\item                     
\item           
\item           
\item           
\item           
\item           
\item           \href{https://twitter.com/XDevelopers?ref_src=twsrc%5Etfw}{Tweets by XDevelopers}\end{document}