Heim >Web-Frontend >H5-Tutorial >Beispielcode-Analyse zur Verbesserung der Website-Frontend-Leistung in HTML5
Das größte Problem bei Cookies ist, dass sie jeder Anfrage folgen. In HTML5 werden sessionStorage und localStorage verwendet, um Benutzerdaten direkt auf dem Client zu speichern, wodurch die Datenmenge in HTTP-Anfragen reduziert werden kann. Darüber hinaus bietet Web Storage im Gegensatz zu Cookies, die Sie selbst schreiben müssen, auch APIs zur Bearbeitung von Daten.
// if localStorage is present, use that if (('localStorage' in window) && window.localStorage !== null) { // easy object property API localStorage.wishlist = '["Unicorn","Narwhal","Deathbear"]'; } else { // without sessionStorage we'll have to use a far-future cookie // with document.cookie's awkward API :( var date = new Date(); date.setTime(date.getTime()+(365*24*60*60*1000)); var expires = date.toGMTString(); var cookiestr = 'wishlist=["Unicorn","Narwhal","Deathbear"];'+ ' expires='+expires+'; path=/'; document.cookie = cookiestr; }
Verwenden Sie CSS-Animationen anstelle von JS-Animationen. Weil einige Maschinen eine GPU-Beschleunigung für CSS-Animationen durchführen und auch JS-Dateianforderungen reduzieren können.
p.box { left: 40px; -webkit-transition: all 0.3s ease-out; -moz-transition: all 0.3s ease-out; -o-transition: all 0.3s ease-out; transition: all 0.3s ease-out; } p.box.totheleft { left: 0px; } p.box.totheright { left: 80px; }
Die Verwendung einer Client-Datenbank wie Web SQLDatabase oder IndexedDB kann die Anzahl der HTTP-Anfragen reduzieren. Daten wie Regionslisten und Freundeslisten können direkt auf dem Client gespeichert werden. Manchmal können Sie auch sessionStorage und localStorage verwenden, da diese Art von Vergleichen im Allgemeinen schneller sind.
JS hat beispielsweise viele neue Methoden wie Map, Filter, forEach usw. eingeführt. Darüber hinaus ist JSON auch direkt in den Browser eingebettet, sodass die Datei json2.js nicht eingeführt werden muss.
// Give me a new array of all values multiplied by 10. [5, 6, 7, 8, 900].map(function(value) { return value * 10; }); // [50, 60, 70, 80, 9000] // Create links to specs and drop them into #links. ['html5', 'css3', 'webgl'].forEach(function(value) { var linksList = document.querySelector('#links'); var newLink = value.link('http://google.com/search?btnI=1&q=' + value + ' spec'); linksList.innerHTML += newLink; }); // Return a new array of all mathematical constants under 2. [3.14, 2.718, 1.618].filter(function(number) { return number < 2; }); // [1.618] // You can also use these extras on other collections like nodeLists. [].forEach.call(document.querySelectorAll('section[data-bucket]'), function(elem, i) { localStorage['bucket' + i] = elem.getAttribute('data-bucket'); });
HTML-Dateien auf dem Client zwischenspeichern. Diese zwischengespeicherten HTML-Dateien haben jedoch nur eine Struktur und keinen Inhalt. Der Inhalt muss über JS mit JSON-Objekten betrieben werden, um die Daten in die Seite zu füllen. Solche HTML-Dateien entsprechen Vorlagen.
Führende Browser haben jetzt die Hardwarebeschleunigung auf GPU-Ebene aktiviert, die durch bestimmte Anweisungen oder Hacks aktiviert werden kann. Wenn Sie beispielsweise 3D-Transformation oder Animation in CSS verwenden, können Sie die GPU-Hardwarebeschleunigung aktivieren.
.hwaccel { -webkit-transform: translateZ(0); }
Für Vorgänge, die zeitaufwändige oder CPU-intensive Vorgänge erfordern, verwenden Sie WebWorker. Dies ist nicht nur schnell, sondern funktioniert auch im Hintergrund, hat keinen Einfluss auf die normale Browserinteraktion.
HTML-Formular hat viele neue Attribute, Elemente und Validierungsfunktionen hinzugefügt, die den Einsatz von JS und CSS reduzieren können.
Mit CSS3 können möglicherweise etwa 100 Bytes CSS 2K-Bild-Sprites ersetzen groß. reduziert.
Zu den am häufigsten verwendeten Spezialeffekten von CSS3 gehören: abgerundete Ecken, Farbverläufe, Schatten, Transparenz, Verformung, Masken usw.
WebSocket wurde ursprünglich entwickelt, um Ajax-Polling zu ersetzen . Einigen Berichten zufolge benötigt WebSocket etwa 30 % weniger Übertragungsvolumen als Ajax und ist etwa 35-mal schneller. Als Ericsson die Leistung von WebSocket testete, wurde festgestellt, dass die Verwendung des Ping-Befehls drei bis fünf Mal mehr verbraucht als WebSocket, sodass er sich sehr gut für Echtzeitanwendungen eignet.
Das obige ist der detaillierte Inhalt vonBeispielcode-Analyse zur Verbesserung der Website-Frontend-Leistung in HTML5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!