Web Workers ist eine von HTML5 bereitgestellte Javascript-Multithreading-Lösung. Wir können rechenintensiven Code zur Ausführung an Web Worker übergeben, ohne dass die Benutzeroberfläche einfriert.
1: So verwenden Sie Worker
Das Grundprinzip von Web Worker besteht darin, mithilfe der Worker-Klasse eine Javascript-Datei in den aktuellen Hauptthread von Javascript zu laden, um einen neuen Thread zu öffnen, was zu einer nicht blockierenden Ausführung führt und Daten zwischen dem Hauptthread und dem Hauptthread bereitstellt der neue Thread. Getauschte Schnittstellen: postMessage, onmessage.
Wie man es benutzt, schauen wir uns ein Beispiel an:
- //worker.js
- onmessage =function (evt){
- var d = evt.data;//Erhalten Sie die über evt.data gesendeten Daten
- postMessage( d );//Sende die erhaltenen Daten an den Hauptthread
- }
HTML-Seite: test.html
- HTML>
- html>
- span Stil="width: auto; height: auto; float: none;" id="20_nwp">a Stil="text- Dekoration: keine; ="_blank" href="http://cpro.baidu.com/ cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=head&k0=head&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0& rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2= 1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id="20_nwl">span Stil="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">head span>a>span>> meta http-equiv=
- " Content-Type" content="text/html; charset=utf-8"/>
- Skript Typ="text/ span style="width: auto; Höhe: automatisch; float: none;" id="21_nwp"> a style="text-decoration: none;" mpid="21" Ziel="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di= 128&fv=0&is_app=0&jk=619521ab1ccffd45&k=javascript&k0=javascript&kdi0=0&luki=9&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&st id=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/ 1183.html&urlid=0" id="21_nwl">< ;span style="color:#0000ff;font-size:14px;width:auto; height:auto;float:none;">javascriptspan>a>span>">
- //WEB页主线程
- var worker =new Worker("worker.js"); //创建一个Worker对象并向它传递将在新线程中执行的脚本的URL
- worker.postMessage("hello world"); //向worker发送数据
- worker.onmessage =function(evt){ //接收worker传过来的数据 span style="width: auto; height: auto; float: none ;" id="22_nwp"> ein Stil="text-decoration: none;" mpid="22" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch =0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=����&k0=����&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2= 1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http ://www.admin10000.com/document/1183.html&urlid=0" id="22_nwl">span style="color:#0000ff ;font-size:14px;width:auto;height:auto;float:none;">函数 span>a>span>
- console.log(evt.span style= "width: auto; height: auto; float: none;" id="23_nwp">a Stil="text-decoration: none;" mpid="23" Ziel="_blank" href="http://cpro.baidu.com/cpro/ ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1 &seller_id=1&sid=45fdcf1cab219561&ssp2=1&stid= 0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id= „23_nwl“>span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">dataspan>a>span>); //输出worker发送来的数据
- }
- Skript>
- Kopf>
- Körper>Körper>
- html>
Nach dem Öffnen von test.html mit dem Chrome-Browser gibt die Konsole „Hallo Welt“ aus und zeigt damit an, dass die Programmausführung erfolgreich war.
Anhand dieses Beispiels können wir sehen, dass die Verwendung von Web Workern hauptsächlich in die folgenden Teile unterteilt ist
WEB-Hauptthread:
1. Laden Sie eine JS-Datei über worker = new Worker( url), um einen Worker zu erstellen und eine Worker-Instanz zurückzugeben.
2. Senden Sie Daten über die Methode worker.postMessage(data) an den Worker.
3. Binden Sie die Methode worker.onmessage, um die vom Worker gesendeten Daten zu empfangen.
4. Sie können worker.terminate() verwenden, um die Ausführung eines Workers zu beenden.
Arbeiter neuer Thread:
1. Senden Sie Daten über die postMessage(data)-Methode an den Hauptthread.
2. Binden Sie die Onmessage-Methode, um die vom Hauptthread gesendeten Daten zu empfangen.
2: Was kann der Arbeitnehmer tun?
Jetzt wissen wir, wie man Web Worker verwendet, wozu er dient und welche Probleme er uns bei der Lösung helfen kann. Schauen wir uns ein Beispiel der Fibonacci-Folge an.
Jeder weiß, dass die Fibonacci-Folge in der Mathematik rekursiv definiert ist: F0=0, F1=1, Fn=F(n-1) F(n-2) (n>=2, n∈N* ), und die übliche Implementierung von Javascript ist:
- var fibonacci =Funktion(n) {
- return n };
- //fibonacci(36)
Da JavaScript in einem einzelnen Thread ausgeführt wird, kann der Browser während des Berechnungsprozesses der Sequenz keine anderen JavaScript-Skripte ausführen, und der UI-Rendering-Thread wird ebenfalls angehalten, wodurch der Browser in einen Zombie-Zustand wechselt. Wenn Sie einen Web-Worker verwenden, um den Berechnungsprozess der Sequenz in einen neuen Thread zu verschieben, können Sie diese Situation vermeiden. Sehen Sie sich das Beispiel konkret an:
- //fibonacci.js
- varfibonacci =Funktion(n) {
- zurück n
- };
- onmessage =function(event) {
- var n = parseInt(event."width: auto; height: auto; float: none;" id="16_nwp">"text-decoration: none;" mpid="16" target="_blank" ref="http://cpro.baidu .com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=0601. 1078_cpr&r b=0&rs=1&seller_id= 1&sid =45fdcf1cab219561&ssp2=1&time=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&url=0" id="16_nwl" >"color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">data< ; /span, 10);
- postMessage(fibonacci(n));
- };
HTML Open:fibonacci.html
- HTML>
- html>
- span Stil="width: auto; height: auto; float: none;" id="11_nwp">a Stil="text- Dekoration: keine; ="_blank" href="http://cpro.baidu.com/ cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=head&k0=head&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0& rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2= 1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id="11_nwl">span Stil="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">head span>a>span>> meta http-equiv=
- " Content-Type" content="text/html; charset=utf-8"/> Titel>Web-Worker-Fibonacci
- Titel>
- Skript Typ="text/ span style="width: auto; Höhe: automatisch; float: none;" id="12_nwp"> a style="text-decoration: none;" mpid="12" Ziel="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di= 128&fv=0&is_app=0&jk=619521ab1ccffd45&k=javascript&k0=javascript&kdi0=0&luki=9&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&st id=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/ 1183.html&urlid=0" id="12_nwl">< ;span style="color:#0000ff;font-size:14px;width:auto; height:auto;float:none;">javascriptspan>a>span>">
- onload =Funktion(){
- var worker =neu Worker('fibonacci.js');
- worker.addEventListener('message', function(event) {
- var timer2 = (new Date()).valueOf();
- console.log( '结果:' event.span style ="width: auto; height: auto; float: none;" id="13_nwp" >a Stil=" text-decoration: none;" mpid="13" target="_blank" href="http://cpro.baidu. com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=06011078_cpr&rb =0&rs=1&seller_id=1&sid= 45fdcf1cab219561&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id="13_nwl">span style= "color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">Datenspan>a> span>, '时间:' timer2, '用时:' ( timer2 - timer ) );
- }, FALSCH);
- var timer = (new Date()).valueOf();
- console.log('开始计算:40','时间:' timer );
- setTimeout(function(){
- console.log('定时器span style="width: auto; height: auto; float: none;" id="14_nwp" >a Stil="text-decoration : none;" mpid="14" Ziel="_blank" href="http://cpro.baidu.com/cpro /ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=����&k0=����&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs =1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id="14_nwl">span Stil="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">函数span>a>span>在计算数列时执行了', '时间:' (new Date()).valueOf( ) );
- },1000);
- worker.postMessage(40);
- console.log('我在计算数列的时候执行了', '时间:' (new Date()).valueOf() );
- }
- Skript>
- span style= "width: auto; height: auto; float: none;" id="15_nwp">a Stil="Text -decoration: none;" mpid="15" Ziel="_blank" href="http://cpro.baidu.com /cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=head&k0=head&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb =0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2 =1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id= "15_nwl">span Stil="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">headspan>a>< ;/span>>
- Körper>
- Körper>
- html>
在Chrome中打开fibonacci.html,控制台得到如下输出:
开始计算:40. 时间:1316508212705
我在计算数列的时候执行了 时间:1316508212734
定时器
- span style="width: auto; height : auto; float: none;" id="9_nwp">a style="text-decoration: none;" mpid="9" Ziel=" _blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id =0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=����&k0=����&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45f dcf1cab219561&ssp2=1&stid=0&t =tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id=" 9_nwl">span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">函数 span>a>span>
在计算数列时执行了 时间:1316508213735
结果:102334155 时间:1316508262820 用时:50115
这个例子说明在worker中执行的fibonacci数列的计算并不会影响到主线程的代码执行,完全在自己独立的线程中计算,只是在计算完成之后将结果发回主线程.
利用web worker我们可以在前端执行一些复杂的大量运算而不会影响页面的展示,并且不会弹出恶心的脚本正忙提示.
下面这个例子使用了web Arbeiter只计算一块像素值.
http://nerget.com/rayjs-mt/rayjs.html
三:Worker的其他尝试
我们已经知道Worker通过接收一个URL来创建一个worker,那么我们是否可以利用web. worker来做一些类似json p的请求呢,大家知道jsonp是通过插入script标签来加载json数据的,而script元素在加现异步加载将会非常不错.
下面这个例子将通过 web worker、jsonp、ajax三种不同的方式来加载一个169.42KB大小的JSON数据
- // /aj/webWorker/core.js
- Funktion $E(id) {
- return document.getElementById(id);
- }
- onload =function() {
- //通过web worker加载
- $E('workerLoad').onclick =function() {
- var url ='http://js.wcdn.cn/aj/mblog/face2' ;
- var d = (new Date()).valueOf();
- var worker =new Worker(url);
- worker.onmessage =function(obj) {
- console.log('web worker: ' ((new Date()).valueOf() - D));
- };
- };
- //通过jsonp加载
- $E('jsonpLoad').onclick =function() {
- var url ='http://js.wcdn.cn/aj/mblog/face1' ;
- var d = (new Date()).valueOf();
- STK.core.io.scriptLoader({
- Methode:'post',
- URL : URL,
- onComplete : function() {
- console.log('jsonp: ' ((new Date()).valueOf() - D));
- }
- });
- };
- //通过ajax加载
- $E('ajaxLoad').onclick =function() {
- var url ='http://js.wcdn.cn/aj/mblog/face' ;
- var d = (new Date()).valueOf();
- STK.core.io.ajax({
- URL : URL,
- onComplete : function(json) {
- console.log('ajax: ' ((new Date()).valueOf() - D));
- }
- });
- };
- };
HTML页面:/aj/webWorker/worker.html
- HTML>
- html>
- span Stil="width: auto; height: auto; float: none;" id="4_nwp">a Stil="text- Dekoration: keine; ="_blank" href="http://cpro.baidu.com/ cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=619521ab1ccffd45&k=head&k0=head&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0& rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2= 1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/1183.html&urlid=0" id="4_nwl">span Stil="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">head span>a>span>> meta http-equiv=
- " Content-Type" content="text/html; charset=utf-8"/>
- Titel>Worker-Beispiel: Last span style="width: auto; height: auto; float: none;" id="5_nwp">a style="text-decoration: none;" mpid= "5" Ziel="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk =619521ab1ccffd45&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&stid=0&t=tpclicked3_hc&tu=u192 2429&u=http://www.admin10000.com/document/1183.html&urlid=0 " id="5_nwl">span style="color:#0000ff;font-size:14px;width:auto;height:auto;float :none;">Datenspan>< ;/a>span> Titel>
- script src="http: //js.t.sinajs.cn/STK/js/gaea.1.14.js" type="text/< ;span style="width: auto; Höhe: automatisch; float: none;" id="6_nwp"> a style="text-decoration: none;" mpid="6" Ziel="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di= 128&fv=0&is_app=0&jk=619521ab1ccffd45&k=javascript&k0=javascript&kdi0=0&luki=9&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&st id=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/ 1183.html&urlid=0" id="6_nwl">< ;span style="color:#0000ff;font-size:14px;width:auto; height:auto;float:none;">javascriptspan>a>span>">Skript>
- script type="text/ javascript" src="http://js.wcdn.cn/aj/webWorker/core.js" >Skript>
- Kopf>
- Körper>
- Eingabe Typ="Schaltfläche" id="workerLoad" Wert="web worker加载">Eingabe>
- Eingabe Typ="Schaltfläche" id="jsonpLoad" Wert="jsonp加载">Eingabe>
- Eingabe Typ="Schaltfläche" id="span style="width: auto; Höhe: automatisch; float: none;" id="7_nwp"> a style="text-decoration: none;" mpid="7" Ziel="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di= 128&fv=0&is_app=0&jk=619521ab1ccffd45&k=ajax&k0=ajax&kdi0=0&luki=8&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=45fdcf1cab219561&ssp2=1&stid =0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/ 1183.html&urlid=0" id="7_nwl">< ;span style="color:#0000ff;font-size:14px;width:auto; height:auto;float:none;">ajaxspan>a>span>Load" value="ajax加载">Eingabe>
- Körper>
- html>
设置HOST
通过 http://js.wcdn.cn/aj/webWorker/worker.html 访问页面然后分别通过三种方式加载数据,得到控制台输出:
Après avoir essayé plusieurs fois, j'ai constaté que le temps de chargement des données via jsonp et ajax n'est pas très différent, et que le temps de chargement du Web Worker a toujours été à un niveau élevé, donc utiliser Web Worker pour charger des données est encore relativement lent, même avec de grandes quantités de données. Il n'y a aucun avantage. Il se peut que Worker prenne du temps pour initialiser de nouveaux threads. Il n’y a aucun avantage autre que d’être non bloquant lors du chargement.
Alors, Web Worker peut-il prendre en charge le chargement de js entre domaines ? Cette fois, nous accédons à la page via http://127.0.0.1/aj/webWorker/worker.html Lorsque nous cliquons sur le bouton de chargement "Web Worker Loading", Chrome le fera. télécharger Il n'y a pas de réponse et une erreur est affichée sous FF6. De là, nous pouvons savoir que Web Worker ne prend pas en charge le chargement inter-domaines de JS, ce qui est une mauvaise nouvelle pour les sites Web qui déploient des fichiers statiques sur un serveur statique distinct.
Ainsi, Web Worker ne peut être utilisé que pour charger des données JSON dans le même domaine, mais ajax peut déjà le faire, et il est plus efficace et polyvalent. Laissez le travailleur faire ce pour quoi il est bon.
Quatre : Résumé
Les travailleurs du Web ont l'air sympas, mais ils sont pleins de démons.
Ce que nous pouvons faire :
1. Vous pouvez charger un JS pour effectuer un grand nombre de calculs complexes sans suspendre le processus principal, et communiquer via postMessage, onmessage
2. Vous pouvez charger des fichiers de script supplémentaires dans le travailleur via importScripts(url)
3. Vous pouvez utiliser setTimeout(), clearTimeout(), setInterval() et clearInterval()
4. Vous pouvez utiliser XMLHttpRequest pour envoyer des requêtes
5. Peut accéder à certaines propriétés du navigateur
Quelles sont les limites :
1. Impossible de charger JS sur plusieurs domaines
2. Le code dans le travailleur ne peut pas accéder au DOM
3. L'implémentation de Worker dans différents navigateurs n'est pas cohérente. Par exemple, FF permet la création de nouveaux Workers dans Workers, mais Chrome ne le permet pas.
4. Tous les navigateurs ne prennent pas en charge cette nouvelle fonctionnalité
H5 bietet eine Vielzahl neuer Funktionen und Funktionen und verbessert die Fähigkeiten der Front-End-Entwicklung erheblich. 1. Multimedia-Unterstützung: Einbetten von Medien und Elementen, keine Plug-Ins sind erforderlich. 2. Leinwand: Verwenden Sie Elemente, um 2D -Grafiken und -Animationen dynamisch zu rendern. 3. Lokaler Speicher: Implementieren Sie die persistente Datenspeicherung über LocalStorage und SessionStorage, um die Benutzererfahrung zu verbessern.

H5 und HTML5 sind verschiedene Konzepte: HTML5 ist eine Version von HTML, die neue Elemente und APIs enthält. H5 ist ein Rahmen für mobile Anwendungsentwicklungen, die auf HTML5 basieren. HTML5 pariert und rendert Code über den Browser, während H5 -Anwendungen Container ausführen und über JavaScript mit nativem Code interagieren müssen.

Zu den wichtigsten Elementen von HTML5 gehören ,,,,,, usw., mit denen moderne Webseiten erstellt werden. 1. Definieren Sie den Kopfinhalt, 2. Zum Navigieren durch den Link, 3. darstellen den Inhalt unabhängiger Artikel, 4. organisieren Sie den Seiteninhalt, 5. Zeigen Sie den Seitenleisteninhalt an, 6. Definieren Sie die Fußzeile. Diese Elemente verbessern die Struktur und Funktionalität der Webseite.

Es gibt keinen Unterschied zwischen HTML5 und H5, der Abkürzung von HTML5. 1.HTML5 ist die fünfte Version von HTML, die die Multimedia- und interaktiven Funktionen von Webseiten verbessert. 2.H5 wird häufig verwendet, um auf HTML5-basierte mobile Webseiten oder -anwendungen zu verweisen, und eignet sich für verschiedene mobile Geräte.

HTML5 ist die neueste Version der Hypertext -Markup -Sprache, die von W3C standardisiert wurde. HTML5 führt neue semantische Tags, Multimedia -Support- und Form -Verbesserungen ein, verbessert die Webstruktur, die Benutzererfahrung und die SEO -Effekte. HTML5 führt neue semantische Tags vor, wie z. HTML5 unterstützt Multimedia-Elemente und es sind keine Plug-Ins von Drittanbietern erforderlich, wodurch die Benutzererfahrung und die Ladegeschwindigkeit verbessert werden. HTML5 verbessert die Formfunktionen und führt neue Eingangstypen wie usw. ein, die die Effizienz der Benutzererfahrung und der Form von Formularverifizierung verbessert.

Wie schreibe ich sauberen und effizienten HTML5 -Code? Die Antwort besteht darin, häufige Fehler zu vermeiden, indem Tags, strukturierte Code, Leistungsoptimierung und die Vermeidung häufiger Fehler vermieden werden. 1. Verwenden Sie semantische Tags wie usw., um die Code -Lesbarkeit und SEO -Effekt zu verbessern. 2. Halten Sie den Code strukturiert und lesbar, wobei entsprechende Eindrücke und Kommentare verwendet werden. 3. Optimieren Sie die Leistung, indem Sie unnötige Tags reduzieren, CDN- und Komprimierungscode. V.

H5 verbessert die Erfahrung des Webbenutzers mit Multimedia -Support, Offline -Speicher und Leistungsoptimierung. 1) Multimedia -Unterstützung: H5 und Elemente vereinfachen die Entwicklung und verbessern die Benutzererfahrung. 2) Offline -Speicher: Webstorage und IndexedDB ermöglichen die Verstärkung der Erfahrung offline. 3) Leistungsoptimierung: Webworker und Elemente optimieren die Leistung, um den Bandbreitenverbrauch zu verringern.

Der HTML5 -Code besteht aus Tags, Elementen und Attributen: 1. Das Tag definiert den Inhaltstyp und ist von Winkelklammern umgeben, wie z. 2. Elemente bestehen aus Start -Tags, Inhalten und End -Tags wie Inhalten. 3. Attribute definieren Schlüsselwertpaare im Start-Tag und verbessern Funktionen, z. B.. Dies sind die grundlegenden Einheiten zum Aufbau von Webstruktur.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
