• <abbr id="bzdyz"><strike id="bzdyz"></strike></abbr>
    \n
    <\/div>\n
    <\/div>\n \n \n<\/body>\n<\/html><\/pre>\n

    Wie Sie sehen, verwendet dieser Code CDN, um CSS- und JavaScript -Dateien zu enthalten. Daher müssen Sie den Link aktualisieren, um die zuvor heruntergeladenen Dateien hinzuzufügen. In der Marke k?nnen Sie einige

    <\/code> platziert sehen. Der erste hat Qunit als ID, das vom Framework verwendet wird, um die Benutzeroberfl?che anzuzeigen, wo die Testergebnisse angezeigt werden. Der zweite
    <\/code>, dessen ID Qunit-fixe ist, sollte von Ihnen (dem Entwickler) verwendet werden. Mit diesem Element k?nnen Entwickler den Code testen, der Elemente aus dem DOM hinzufügt, bearbeitet oder entfernt, ohne sich Sorgen darüber zu machen, dass das DOM nach jedem Test aufger?umt wird. Wenn Sie das von Ihrem Code erstellte Element in diesem
    <\/code> einfügen, wird Qunit den Reset für uns abwickeln. Schlie?lich fügen wir eine Tests.js -Datei hinzu, die die Datei mit den Tests darstellt. Mein Rat ist, Dateien zu verwenden, um Tests bei der Arbeit mit echten Projekten zu speichern. In der Live -Demo, die ich für dieses Tutorial erstellt habe, habe ich JSBin verwendet und das Hochladen von Dateien sicherlich nicht zugelassen. In der Demo werden Sie also sehen, dass ich den Testcode eingebaut habe. Nachdem Sie verstehen, was es bedeutet, jeden Abschnitt zu markieren, ?ffnen Sie die Seite index.html in Ihrem Browser, um zu sehen, was passiert. Wenn alles gut geht, sollten Sie eine Live -Demo -Schnittstelle wie unten gezeigt sehen, die auch als Beispiel für JSBIN: Qunit bereitgestellt wird. In diesem Stadium ist der einzige Teil dieser Schnittstelle, das für uns relevant ist, der Teil, der die Zeit zeigt, die Qunit Verarbeitungstests verbringt, die Anzahl der definierten Behauptungen und die Anzahl der bestandenen und fehlgeschlagenen Tests. Die obige Demonstration zeigt, dass wir keine Tests definieren. Lassen Sie uns dieses Problem l?sen. <\/p>\n

    Erstellen Sie Tests mit Qunit <\/strong> <\/p>\n

    Qunit bietet zwei M?glichkeiten, neue Tests zu erstellen: QUnit.test()<\/code> und QUnit.asyncTest()<\/code>. Der erste wird verwendet, um den Code zu testen, der synchron ausgeführt wird, w?hrend der zweite zum Testen asynchroner Code verwendet wird. In diesem Abschnitt werde ich beschreiben, wie Tests für Synchroncode erstellt werden. Die Signatur der Methode ist wie folgt: QUnit.test()<\/code>\n<\/p>\n

    QUnit.test(name, testFunction)<\/pre> Der erste Parameter 

    ist eine Zeichenfolge, die uns hilft, die erstellten Tests zu identifizieren. Der zweite Parameter name<\/code> ist eine Funktion, die die Behauptungen enth?lt, die das Framework ausführt. Das Framework übergibt einen Parameter an diese Funktion, mit dem alle Assertionsmethoden von Qunit enthüllt werden. Konvertieren Sie diese Beschreibung in Code, wir k?nnen die Datei tests.js mit dem folgenden Code aktualisieren: testFunction<\/code>\n<\/p>\n

    QUnit.test('我的第一個測試', function(assert) {\n   \/\/ 斷言在這里...\n});<\/pre> Dieser Code erstellt einen neuen Test, der durch die Zeichenfolge \"Mein erster Test\" und eine Funktion mit einem leeren K?rper identifiziert wurde. Das Hinzufügen von Tests ohne Behauptungen ist nicht nützlich. Um dieses Problem zu l?sen, müssen wir die in Qunit verfügbaren Behauptungsmethoden lernen. 

    \n<\/p>

    Qunits Assertion -Methode <\/strong>\n<\/p> Behauptungen stehen im Mittelpunkt der Softwaretests. Sie erlauben uns zu überprüfen, ob unser Code wie erwartet funktioniert. In Qunit haben wir viele M?glichkeiten, diese Erwartungen zu überprüfen. Sie k?nnen in Tests durch Parameter von Funktionen zugegriffen werden, die an die

    -Methode übergeben wurden (in unserem vorherigen Beispiel QUnit.test()<\/code>). Die folgende Liste fasst die verfügbaren Methoden sowie deren Funktionen und Unterschriften zusammen: assert<\/code>

      \n
    • deepEqual(value, expected[, message])<\/code>: Ein rekursiver strenger Vergleich, der für alle JavaScript -Typen funktioniert. Wenn value<\/code> und expected<\/code> in Bezug auf Eigenschaften und Werte gleich sind und denselben Prototyp haben, wird die Behauptung übergeben;\n<\/li>
    • : Der Parameter equal(value, expected[, message])<\/code> gleich value<\/code> unter Verwendung von Vergleichsüberprüfung (==). expected<\/code>\n<\/li>
    • : Wie notDeepEqual(value, expected[, message])<\/code>, testet jedoch die Ungleichheit;\ndeepEqual()<\/code> <\/li>: Wie
    • , testet jedoch die Ungleichheit;\nnotEqual(value, expected[, message])<\/code> equal()<\/code>: Strikter Vergleich der Eigenschaften und Werte eines Objekts. Wenn alle Attribute und Werte gleich sind, geht die Behauptung aus\n<\/li>
    • : Verwenden Sie strenge Vergleich (===), um den Parameter propEqual(value, expected[, message])<\/code> gleich dem <\/li> zu liefern\n
    • strictEqual(value, expected[, message])<\/code>: Wie value<\/code>, testet jedoch die Ungleichheit;\nexpected<\/code> <\/li>: Wie
    • , testet jedoch die Ungleichheit;\nnotPropEqual(value, expected[, message])<\/code> propEqual()<\/code>: Wenn der erste Parameter ein wahrer Wert ist, geht die Behauptung aus\n<\/li>
    • : Testen Sie, ob der Rückruf eine Ausnahme ausgel?st hat, und vergleichen Sie optional die geworfenen Fehler\nnotStrictEqual(value, expected[, message])<\/code>\nstrictEqual()<\/code> Die von diesen Methoden akzeptierten Parameter sind wie folgt: <\/li>\n
    • \nok(value[, message])<\/code> <\/li>: Der Wert, der durch eine Funktion, Methode oder den in einer Variablen gespeicherten Wert zurückgegeben wird, der überprüft werden muss;\n
    • throws(function[, expected][, message])<\/code>: Der zu testende Wert. Für die <\/li> -Methode kann dies <\/ul> sein;\n

      <\/p>: Eine optionale Zeichenfolge, die die Behauptung beschreibt;\n

      • : Die zu ausgeführte Funktion sollte einen Fehler zurückgeben\nvalue<\/code>\n<\/li> Jetzt, da Sie die verfügbaren Methoden und Parameter verstanden haben, ist es Zeit, einen Code zu überprüfen. Anstatt mehrere Tests für eine einzelne Funktion zu schreiben, versuche ich, ein realistischeres Beispiel zu reproduzieren. Wie auch immer, die Tests, die ich zeigen werde, sollten Sie nicht als vollst?ndige Testsuite angesehen werden, aber sie sollten Ihnen eine bestimmte Vorstellung davon geben, wo Sie anfangen sollen. Um die genannten Tests zu schreiben, müssen wir einen Code zum Testen definieren. In diesem Fall werde ich ein Objektliteral wie folgt definieren:
      • \n\n\n  \n  QUnit Example<\/title>\n  <link rel=\"stylesheet\" href=\"qunit-1.14.0.css\">\n<\/head>\n<body>
        <h1><a href="http://m.miracleart.cn/">国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂</a></h1>\n  <div   class="377j5v51b"   id=\"qunit\"><\/div>\n  <div   class="377j5v51b"   id=\"qunit-fixture\"><\/div>\n  <??>\n  <??>\n<\/body>\n<\/html><\/pre>\n<p> Wie Sie sehen, definieren wir ein Objektliteral mit drei Funktionen: <code>max()<\/code>, <code>isOdd()<\/code> und <code>sortObj()<\/code>. Der erste akzeptiert eine beliebige Anzahl von Parametern und gibt den Maximalwert zurück. <code>isOdd()<\/code> Nehmen Sie eine Zahl als Parameter und testen Sie, ob es sich um eine ungerade Zahl handelt. <code>sortObj()<\/code> akzeptiert ein Array von Objekten, idealerweise sollte es ein Attribut namens Timestempe geben und sie nach dem Wert dieses Attributs sortiert. Die m?glichen Tests?tze dieser Funktionen sind wie folgt: (Das Beispiel für das lange Testcode wird hier weggelassen, da die Wortgrenze überschritten wurde, das Prinzip jedoch mit der vorherigen Beschreibung übereinstimmt) <\/p>\n<p> <strong> Setzen Sie die Erwartungen <\/strong> <\/p>\n<p> Beim Erstellen eines Tests besteht die beste Praxis darin, die Anzahl der Ausführungen zu setzen. Wenn eine oder mehrere Behauptungen nicht ausgeführt werden, f?llt der Test fehl. Das Qunit -Framework liefert zu diesem Zweck eine <code>expect()<\/code> -Methode. Diese Methode ist besonders nützlich, wenn Sie mit asynchronem Code zu tun haben, aber es ist am besten, ihn beim Testen synchroner Funktionen zu verwenden. Die Signatur der Methode ist wie folgt: <code>expect()<\/code>\n<\/p>\nDer <pre class='brush:php;toolbar:false;'>QUnit.test(name, testFunction)<\/pre> wobei der Parameter <p> die erwartete Anzahl von Behauptungen angibt. (Das Beispiel für die Aktualisierung des Testcode wird auch hier weggelassen, da die Wortgrenze überschritten wurde, das Prinzip jedoch mit der vorherigen Beschreibung übereinstimmt.) <code>assertionsNumber<\/code>\n<\/p> <p> Qunit Einführung Schlussfolgerung <strong> <\/strong>\n<\/p> In diesem Tutorial stelle ich Sie in die magische Welt der Tests vor, insbesondere wie man den JavaScript -Code von Unit -Tests mit Qunit mithilfe von Qunit testet. Wir haben gesehen, wie einfach es ist, das Qunit -Framework einzurichten und welche Methoden es bereitstellt, um Synchronisationsfunktionen zu testen. Darüber hinaus haben Sie die vom Framework bereitgestellte Anzahl von Behauptungsfunktionen zum Testen des Codes gelernt. Schlie?lich erw?hnte ich, wie wichtig es ist, die Anzahl der Aussagen zu setzen, die wir ausführen, und wie sie mithilfe der <p> -Methode festgelegt werden. Ich hoffe, Sie haben diesen Beitrag genossen und erw?gen, Qunit in Ihr Projekt zu integrieren. (Der FAQS -Teil wird hier weggelassen, da die Wortgrenze überschritten wurde) <code>expect()<\/code><\/p>"}	</script>
        	
        <meta http-equiv="Cache-Control" content="no-transform" />
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <script>var V_PATH="/";window.onerror=function(){ return true; };</script>
        </head>
        
        <body data-commit-time="2023-12-28T14:50:12+08:00" class="editor_body body2_2">
        	<link rel="stylesheet" type="text/css" href="/static/csshw/stylehw.css">
        <header>
            <div   id="377j5v51b"   class="head">
                <div   id="377j5v51b"   class="haed_left">
                    <div   id="377j5v51b"   class="haed_logo">
                        <a href="http://m.miracleart.cn/de/" title="" class="haed_logo_a">
                            <img src="/static/imghw/logo.png" alt="" class="haed_logoimg">
                        </a>
                    </div>
                    <div   id="377j5v51b"   class="head_nav">
                        <div   id="377j5v51b"   class="head_navs">
                            <a href="javascript:;" title="Gemeinschaft" class="head_nava head_nava-template1">Gemeinschaft</a>
                            <div   class="377j5v51b"   id="dropdown-template1" style="display: none;">
                                <div   id="377j5v51b"   class="languagechoose">
                                    <a href="http://m.miracleart.cn/de/article.html" title="Artikel" class="languagechoosea on">Artikel</a>
                                    <a href="http://m.miracleart.cn/de/faq/zt" title="Themen" class="languagechoosea">Themen</a>
                                    <a href="http://m.miracleart.cn/de/wenda.html" title="Fragen und Antworten" class="languagechoosea">Fragen und Antworten</a>
                                </div>
                            </div>
                        </div>
        
                        <div   id="377j5v51b"   class="head_navs">
                            <a href="javascript:;" title="Lernen" class="head_nava head_nava-template1_1">Lernen</a>
                            <div   class="377j5v51b"   id="dropdown-template1_1" style="display: none;">
                                <div   id="377j5v51b"   class="languagechoose">
                                    <a href="http://m.miracleart.cn/de/course.html" title="Kurs" class="languagechoosea on">Kurs</a>
                                    <a href="http://m.miracleart.cn/de/dic/" title="Programmierw?rterbuch" class="languagechoosea">Programmierw?rterbuch</a>
                                </div>
                            </div>
                        </div>
        
                        <div   id="377j5v51b"   class="head_navs">
                            <a href="javascript:;" title="Tools-Bibliothek" class="head_nava head_nava-template1_2">Tools-Bibliothek</a>
                            <div   class="377j5v51b"   id="dropdown-template1_2" style="display: none;">
                                <div   id="377j5v51b"   class="languagechoose">
                                    <a href="http://m.miracleart.cn/de/toolset/development-tools" title="Entwicklungswerkzeuge" class="languagechoosea on">Entwicklungswerkzeuge</a>
                                    <a href="http://m.miracleart.cn/de/toolset/website-source-code" title="Quellcode der Website" class="languagechoosea">Quellcode der Website</a>
                                    <a href="http://m.miracleart.cn/de/toolset/php-libraries" title="PHP-Bibliotheken" class="languagechoosea">PHP-Bibliotheken</a>
                                    <a href="http://m.miracleart.cn/de/toolset/js-special-effects" title="JS-Spezialeffekte" class="languagechoosea on">JS-Spezialeffekte</a>
                                    <a href="http://m.miracleart.cn/de/toolset/website-materials" title="Website-Materialien" class="languagechoosea on">Website-Materialien</a>
                                    <a href="http://m.miracleart.cn/de/toolset/extension-plug-ins" title="Erweiterungs-Plug-Ins" class="languagechoosea on">Erweiterungs-Plug-Ins</a>
                                </div>
                            </div>
                        </div>
        
                        <div   id="377j5v51b"   class="head_navs">
                            <a href="http://m.miracleart.cn/de/ai" title="KI-Tools" class="head_nava head_nava-template1_3">KI-Tools</a>
                        </div>
        
                        <div   id="377j5v51b"   class="head_navs">
                            <a href="javascript:;" title="Freizeit" class="head_nava head_nava-template1_3">Freizeit</a>
                            <div   class="377j5v51b"   id="dropdown-template1_3" style="display: none;">
                                <div   id="377j5v51b"   class="languagechoose">
                                    <a href="http://m.miracleart.cn/de/game" title="Spiel-Download" class="languagechoosea on">Spiel-Download</a>
                                    <a href="http://m.miracleart.cn/de/mobile-game-tutorial/" title="Spiel-Tutorials" class="languagechoosea">Spiel-Tutorials</a>
        
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                            <div   id="377j5v51b"   class="head_search">
                        <input id="key_words"  onkeydown="if (event.keyCode == 13) searchs('de')" class="search-input" type="text" autocomplete="off" name="keywords" required="required" placeholder="Block,address,transaction,news" value="">
                        <a href="javascript:;" title="suchen"  onclick="searchs('de')"><img src="/static/imghw/find.png" alt="suchen"></a>
                    </div>
                        <div   id="377j5v51b"   class="head_right">
                    <div   id="377j5v51b"   class="haed_language">
                        <a href="javascript:;" class="layui-btn haed_language_btn">Deutsch<i class="layui-icon layui-icon-triangle-d"></i></a>
                        <div   class="377j5v51b"   id="dropdown-template" style="display: none;">
                            <div   id="377j5v51b"   class="languagechoose">
                                                        <a href="javascript:setlang('zh-cn');" title="簡體中文" class="languagechoosea">簡體中文</a>
                                                        <a href="javascript:setlang('en');" title="English" class="languagechoosea">English</a>
                                                        <a href="javascript:setlang('zh-tw');" title="繁體中文" class="languagechoosea">繁體中文</a>
                                                        <a href="javascript:setlang('ja');" title="日本語" class="languagechoosea">日本語</a>
                                                        <a href="javascript:setlang('ko');" title="???" class="languagechoosea">???</a>
                                                        <a href="javascript:setlang('ms');" title="Melayu" class="languagechoosea">Melayu</a>
                                                        <a href="javascript:setlang('fr');" title="Fran?ais" class="languagechoosea">Fran?ais</a>
                                                        <a href="javascript:;" title="Deutsch" class="languagechoosea">Deutsch</a>
                                                    </div>
                        </div>
                    </div>
                    <span id="377j5v51b"    class="head_right_line"></span>
                                    <div style="display: block;" id="login" class="haed_login ">
                            <a href="javascript:;"  title="Login" class="haed_logina ">Login</a>
                        </div>
                        <div style="display: block;" id="reg" class="head_signup login">
                            <a href="javascript:;"  title="singup" class="head_signupa">singup</a>
                        </div>
                    
                </div>
            </div>
        </header>
        
        	
        	<main>
        		<div   id="377j5v51b"   class="Article_Details_main">
        			<div   id="377j5v51b"   class="Article_Details_main1">
        							<div   id="377j5v51b"   class="Article_Details_main1M">
        					<div   id="377j5v51b"   class="phpgenera_Details_mainL1">
        						<a href="http://m.miracleart.cn/de/" title="Heim"
        							class="phpgenera_Details_mainL1a">Heim</a>
        						<img src="/static/imghw/top_right.png" alt="" />
        												<a href="http://m.miracleart.cn/de/web-designer.html"
        							class="phpgenera_Details_mainL1a">Web-Frontend</a>
        						<img src="/static/imghw/top_right.png" alt="" />
        												<a href="http://m.miracleart.cn/de/js-tutorial.html"
        							class="phpgenera_Details_mainL1a">js-Tutorial</a>
        						<img src="/static/imghw/top_right.png" alt="" />
        						<span>Erste Schritte mit Qunit</span>
        					</div>
        					
        					<div   id="377j5v51b"   class="Articlelist_txts">
        						<div   id="377j5v51b"   class="Articlelist_txts_info">
        							<h1 class="Articlelist_txts_title">Erste Schritte mit Qunit</h1>
        							<div   id="377j5v51b"   class="Articlelist_txts_info_head">
        								<div   id="377j5v51b"   class="author_info">
        									<a href="http://m.miracleart.cn/de/member/1468494.html"  class="author_avatar">
        									<img class="lazy"  data-src="https://img.php.cn/upload/avatar/000/000/001/66ea812815a39919.png" src="/static/imghw/default1.png" alt="Jennifer Aniston">
        									</a>
        									<div   id="377j5v51b"   class="author_detail">
        																			<a href="http://m.miracleart.cn/de/member/1468494.html" class="author_name">Jennifer Aniston</a>
                                        										</div>
        								</div>
                        			</div>
        							<span id="377j5v51b"    class="Articlelist_txts_time">Feb 21, 2025 pm	 12:12 PM</span>
        														
        						</div>
        					</div>
        					<hr />
        					<div   id="377j5v51b"   class="article_main php-article">
        						<div   id="377j5v51b"   class="article-list-left detail-content-wrap content">
        						<ins class="adsbygoogle"
        							style="display:block; text-align:center;"
        							data-ad-layout="in-article"
        							data-ad-format="fluid"
        							data-ad-client="ca-pub-5902227090019525"
        							data-ad-slot="3461856641">
        						</ins>
        						
        
        					<p> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174011113685793.jpg" class="lazy" alt="Getting Started with QUnit "> </p>
        <p> Software -Tests ist ein Prozess der Bewertung von Software, um die Differenz zwischen der erwarteten Ausgabe und der tats?chlichen Ausgabe eines bestimmten Eingangssatzes zu erkennen. Testen, insbesondere Unit -Tests, sollten ein wesentlicher Bestandteil des Lebens jedes Entwicklers sein. Leider scheinen viele Entwickler Angst vor der Aktivit?t zu haben. In JavaScript k?nnen wir aus vielen Frameworks w?hlen, um unsere Codebasis zu testen. Zum Beispiel Mokka, Selen und Qunit. In diesem Artikel werde ich Ihnen Qunit vorstellen. Qunit ist ein vom JQuery -Team entwickeltes und gewartetes Rahmen für das Testen, das auch hinter Projekten wie JQuery und JQuery UI steht. </p>
        <p> <strong> Schlüsselpunkte </strong> </p>
        <ul>
        <li> Qunit wird vom JQuery -Team entwickelt und gepflegt und ist ein beliebtes JavaScript -Unit -Test -Framework für die Benutzerfreundlichkeit und Einfachheit des Setups. </li>
        <li> Um mit Qunit zu beginnen, laden Sie die neueste Version von JavaScript- und CSS -Dateien von der Qunit -Website herunter und fügen Sie sie in Ihre HTML -Datei auf. </li>
        <li> Qunit bietet zwei M?glichkeiten, um neue Tests zu erstellen: <code>QUnit.test()</code> für Synchroncode und <code>QUnit.asyncTest()</code> für asynchrone Code. Diese Tests enthalten Behauptungen, die überprüfen, ob der Code wie erwartet funktioniert. </li>
        <li> Qunit liefert eine Vielzahl von Assertionsmethoden, einschlie?lich <code>deepEqual()</code>, <code>equal()</code>, <code>notDeepEqual()</code>, <code>notEqual()</code>, <code>propEqual()</code>, <code>strictEqual()</code>, <code>notPropEqual()</code>, <code>notStrictEqual()</code>, <code>ok()</code>, <code>throws()</code> , </li>, <li>, <code>expect()</code> und </li>. Jede Methode hat ihren spezifischen Zweck und akzeptiert bestimmte Parameter. </ul>
        <p> Beim Erstellen von Tests mit Qunit besteht die beste Praxis darin, die Anzahl der Aussagen mit der <strong> -Methode festzulegen. Dies hilft sicherzustellen, dass alle Behauptungen ausgeführt werden und wenn eine oder mehrere Behauptungen nicht ausgeführt werden, schl?gt der Test fehl. </strong>
        </p>
        <p> </p> Einstellungen Qunit  
         Einer der Hauptgründe, warum viele Entwickler Qunit verwenden, ist die Benutzerfreundlichkeit. Der Einstieg mit diesem Framework ist sehr einfach und Sie k?nnen die Hauptkonzepte in wenigen Stunden beherrschen. Der erste Schritt zur Verwendung von Qunit besteht offensichtlich darin, es mit dem Herunterladen zu beginnen. Dies gibt verschiedene M?glichkeiten, dies zu tun: Laden Sie manuell von der Website herunter, verwenden Sie CDN, verwenden Sie Bower oder verwenden Sie NPM. Mein Rat ist, dass Sie sich nicht auf CDN verlassen sollten, um Ihren Code zu testen, es sei denn, Sie entwickeln eine einfache Live -Demo. Halten Sie sich also an andere Optionen. Für diesen Artikel m?chte ich keine Voraussetzungen festlegen (Read Bower und NPM), also werden wir den ersten Ansatz verfolgen. Besuchen Sie daher die Qunit-Website und laden Sie die neueste Version der JavaScript-Datei (mit dem Namen Qunit-1.14.0.js) und der CSS-Datei (mit dem Namen Qunit-1.14.0.css) herunter. Setzen Sie sie in einen Ordner, in dem Sie auch einen Index.html erstellen. In dieser Datei platzieren wir den HTML -Code, der auf der Startseite der Website angezeigt wird, und ich werde ihn unten für die Bequemlichkeit wiederholen. <pre class='brush:php;toolbar:false;'><!DOCTYPE html>
        <html>
        <head>
          <meta charset="utf-8">
          <title>QUnit Example</title>
          <link rel="stylesheet" href="qunit-1.14.0.css">
        </head>
        <body>
          <div id="qunit"></div>
          <div id="qunit-fixture"></div>
          <??>
          <??>
        </body>
        </html></pre>
        <p> Wie Sie sehen, verwendet dieser Code CDN, um CSS- und JavaScript -Dateien zu enthalten. Daher müssen Sie den Link aktualisieren, um die zuvor heruntergeladenen Dateien hinzuzufügen. In der Marke k?nnen Sie einige <code><div></code> platziert sehen. Der erste hat Qunit als ID, das vom Framework verwendet wird, um die Benutzeroberfl?che anzuzeigen, wo die Testergebnisse angezeigt werden. Der zweite <code><div></code>, dessen ID Qunit-fixe ist, sollte von Ihnen (dem Entwickler) verwendet werden. Mit diesem Element k?nnen Entwickler den Code testen, der Elemente aus dem DOM hinzufügt, bearbeitet oder entfernt, ohne sich Sorgen darüber zu machen, dass das DOM nach jedem Test aufger?umt wird. Wenn Sie das von Ihrem Code erstellte Element in diesem <code><div></code> einfügen, wird Qunit den Reset für uns abwickeln. Schlie?lich fügen wir eine Tests.js -Datei hinzu, die die Datei mit den Tests darstellt. Mein Rat ist, Dateien zu verwenden, um Tests bei der Arbeit mit echten Projekten zu speichern. In der Live -Demo, die ich für dieses Tutorial erstellt habe, habe ich JSBin verwendet und das Hochladen von Dateien sicherlich nicht zugelassen. In der Demo werden Sie also sehen, dass ich den Testcode eingebaut habe. Nachdem Sie verstehen, was es bedeutet, jeden Abschnitt zu markieren, ?ffnen Sie die Seite index.html in Ihrem Browser, um zu sehen, was passiert. Wenn alles gut geht, sollten Sie eine Live -Demo -Schnittstelle wie unten gezeigt sehen, die auch als Beispiel für JSBIN: Qunit bereitgestellt wird. In diesem Stadium ist der einzige Teil dieser Schnittstelle, das für uns relevant ist, der Teil, der die Zeit zeigt, die Qunit Verarbeitungstests verbringt, die Anzahl der definierten Behauptungen und die Anzahl der bestandenen und fehlgeschlagenen Tests. Die obige Demonstration zeigt, dass wir keine Tests definieren. Lassen Sie uns dieses Problem l?sen. </p>
        <p> <strong> Erstellen Sie Tests mit Qunit </strong> </p>
        <p> Qunit bietet zwei M?glichkeiten, neue Tests zu erstellen: <code>QUnit.test()</code> und <code>QUnit.asyncTest()</code>. Der erste wird verwendet, um den Code zu testen, der synchron ausgeführt wird, w?hrend der zweite zum Testen asynchroner Code verwendet wird. In diesem Abschnitt werde ich beschreiben, wie Tests für Synchroncode erstellt werden. Die Signatur der Methode ist wie folgt: <code>QUnit.test()</code>
        </p>
        <pre class='brush:php;toolbar:false;'>QUnit.test(name, testFunction)</pre> Der erste Parameter <p> ist eine Zeichenfolge, die uns hilft, die erstellten Tests zu identifizieren. Der zweite Parameter <code>name</code> ist eine Funktion, die die Behauptungen enth?lt, die das Framework ausführt. Das Framework übergibt einen Parameter an diese Funktion, mit dem alle Assertionsmethoden von Qunit enthüllt werden. Konvertieren Sie diese Beschreibung in Code, wir k?nnen die Datei tests.js mit dem folgenden Code aktualisieren: <code>testFunction</code>
        </p>
        <pre class='brush:php;toolbar:false;'>QUnit.test('我的第一個測試', function(assert) {
           // 斷言在這里...
        });</pre> Dieser Code erstellt einen neuen Test, der durch die Zeichenfolge "Mein erster Test" und eine Funktion mit einem leeren K?rper identifiziert wurde. Das Hinzufügen von Tests ohne Behauptungen ist nicht nützlich. Um dieses Problem zu l?sen, müssen wir die in Qunit verfügbaren Behauptungsmethoden lernen. <p>
        </p> <p> Qunits Assertion -Methode <strong> </strong>
        </p> Behauptungen stehen im Mittelpunkt der Softwaretests. Sie erlauben uns zu überprüfen, ob unser Code wie erwartet funktioniert. In Qunit haben wir viele M?glichkeiten, diese Erwartungen zu überprüfen. Sie k?nnen in Tests durch Parameter von Funktionen zugegriffen werden, die an die <p> -Methode übergeben wurden (in unserem vorherigen Beispiel <code>QUnit.test()</code>). Die folgende Liste fasst die verfügbaren Methoden sowie deren Funktionen und Unterschriften zusammen: <code>assert</code><ul>
        <li> <code>deepEqual(value, expected[, message])</code>: Ein rekursiver strenger Vergleich, der für alle JavaScript -Typen funktioniert. Wenn <code>value</code> und <code>expected</code> in Bezug auf Eigenschaften und Werte gleich sind und denselben Prototyp haben, wird die Behauptung übergeben;
        </li> <li>: Der Parameter <code>equal(value, expected[, message])</code> gleich <code>value</code> unter Verwendung von Vergleichsüberprüfung (==). <code>expected</code>
        </li> <li>: Wie <code>notDeepEqual(value, expected[, message])</code>, testet jedoch die Ungleichheit;
        <code>deepEqual()</code> </li>: Wie <li>, testet jedoch die Ungleichheit;
        <code>notEqual(value, expected[, message])</code> <code>equal()</code>: Strikter Vergleich der Eigenschaften und Werte eines Objekts. Wenn alle Attribute und Werte gleich sind, geht die Behauptung aus
        </li> <li>: Verwenden Sie strenge Vergleich (===), um den Parameter <code>propEqual(value, expected[, message])</code> gleich dem </li> zu liefern
        <li> <code>strictEqual(value, expected[, message])</code>: Wie <code>value</code>, testet jedoch die Ungleichheit;
        <code>expected</code> </li>: Wie <li>, testet jedoch die Ungleichheit;
        <code>notPropEqual(value, expected[, message])</code> <code>propEqual()</code>: Wenn der erste Parameter ein wahrer Wert ist, geht die Behauptung aus
        </li> <li>: Testen Sie, ob der Rückruf eine Ausnahme ausgel?st hat, und vergleichen Sie optional die geworfenen Fehler
        <code>notStrictEqual(value, expected[, message])</code>
        <code>strictEqual()</code> Die von diesen Methoden akzeptierten Parameter sind wie folgt: </li>
        <li>
        <code>ok(value[, message])</code> </li>: Der Wert, der durch eine Funktion, Methode oder den in einer Variablen gespeicherten Wert zurückgegeben wird, der überprüft werden muss;
        <li> <code>throws(function[, expected][, message])</code>: Der zu testende Wert. Für die </li> -Methode kann dies </ul> sein;
        <p> </p>: Eine optionale Zeichenfolge, die die Behauptung beschreibt;
        <ul> <li>: Die zu ausgeführte Funktion sollte einen Fehler zurückgeben
        <code>value</code>
        </li> Jetzt, da Sie die verfügbaren Methoden und Parameter verstanden haben, ist es Zeit, einen Code zu überprüfen. Anstatt mehrere Tests für eine einzelne Funktion zu schreiben, versuche ich, ein realistischeres Beispiel zu reproduzieren. Wie auch immer, die Tests, die ich zeigen werde, sollten Sie nicht als vollst?ndige Testsuite angesehen werden, aber sie sollten Ihnen eine bestimmte Vorstellung davon geben, wo Sie anfangen sollen. Um die genannten Tests zu schreiben, müssen wir einen Code zum Testen definieren. In diesem Fall werde ich ein Objektliteral wie folgt definieren: <li><pre class='brush:php;toolbar:false;'><!DOCTYPE html>
        <html>
        <head>
          <meta charset="utf-8">
          <title>QUnit Example</title>
          <link rel="stylesheet" href="qunit-1.14.0.css">
        </head>
        <body>
          <div id="qunit"></div>
          <div id="qunit-fixture"></div>
          <??>
          <??>
        </body>
        </html></pre>
        <p> Wie Sie sehen, definieren wir ein Objektliteral mit drei Funktionen: <code>max()</code>, <code>isOdd()</code> und <code>sortObj()</code>. Der erste akzeptiert eine beliebige Anzahl von Parametern und gibt den Maximalwert zurück. <code>isOdd()</code> Nehmen Sie eine Zahl als Parameter und testen Sie, ob es sich um eine ungerade Zahl handelt. <code>sortObj()</code> akzeptiert ein Array von Objekten, idealerweise sollte es ein Attribut namens Timestempe geben und sie nach dem Wert dieses Attributs sortiert. Die m?glichen Tests?tze dieser Funktionen sind wie folgt: (Das Beispiel für das lange Testcode wird hier weggelassen, da die Wortgrenze überschritten wurde, das Prinzip jedoch mit der vorherigen Beschreibung übereinstimmt) </p>
        <p> <strong> Setzen Sie die Erwartungen </strong> </p>
        <p> Beim Erstellen eines Tests besteht die beste Praxis darin, die Anzahl der Ausführungen zu setzen. Wenn eine oder mehrere Behauptungen nicht ausgeführt werden, f?llt der Test fehl. Das Qunit -Framework liefert zu diesem Zweck eine <code>expect()</code> -Methode. Diese Methode ist besonders nützlich, wenn Sie mit asynchronem Code zu tun haben, aber es ist am besten, ihn beim Testen synchroner Funktionen zu verwenden. Die Signatur der Methode ist wie folgt: <code>expect()</code>
        </p>
        Der <pre class='brush:php;toolbar:false;'>QUnit.test(name, testFunction)</pre> wobei der Parameter <p> die erwartete Anzahl von Behauptungen angibt. (Das Beispiel für die Aktualisierung des Testcode wird auch hier weggelassen, da die Wortgrenze überschritten wurde, das Prinzip jedoch mit der vorherigen Beschreibung übereinstimmt.) <code>assertionsNumber</code>
        </p> <p> Qunit Einführung Schlussfolgerung <strong> </strong>
        </p> In diesem Tutorial stelle ich Sie in die magische Welt der Tests vor, insbesondere wie man den JavaScript -Code von Unit -Tests mit Qunit mithilfe von Qunit testet. Wir haben gesehen, wie einfach es ist, das Qunit -Framework einzurichten und welche Methoden es bereitstellt, um Synchronisationsfunktionen zu testen. Darüber hinaus haben Sie die vom Framework bereitgestellte Anzahl von Behauptungsfunktionen zum Testen des Codes gelernt. Schlie?lich erw?hnte ich, wie wichtig es ist, die Anzahl der Aussagen zu setzen, die wir ausführen, und wie sie mithilfe der <p> -Methode festgelegt werden. Ich hoffe, Sie haben diesen Beitrag genossen und erw?gen, Qunit in Ihr Projekt zu integrieren. (Der FAQS -Teil wird hier weggelassen, da die Wortgrenze überschritten wurde) <code>expect()</code></p><p>Das obige ist der detaillierte Inhalt vonErste Schritte mit Qunit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!</p>
        
        
        						</div>
        					</div>
        					<div   id="377j5v51b"   class="wzconShengming_sp">
        						<div   id="377j5v51b"   class="bzsmdiv_sp">Erkl?rung dieser Website</div>
        						<div>Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn</div>
        					</div>
        				</div>
        
        				<ins class="adsbygoogle"
             style="display:block"
             data-ad-format="autorelaxed"
             data-ad-client="ca-pub-5902227090019525"
             data-ad-slot="2507867629"></ins>
        
        
        
        				<div   id="377j5v51b"   class="AI_ToolDetails_main4sR">
        
        
        				<ins class="adsbygoogle"
                style="display:block"
                data-ad-client="ca-pub-5902227090019525"
                data-ad-slot="3653428331"
                data-ad-format="auto"
                data-full-width-responsive="true"></ins>
            
        
        
        					<!-- <div   id="377j5v51b"   class="phpgenera_Details_mainR4">
        						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
        							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
        								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									src="/static/imghw/hotarticle2.png" alt="" />
        								<h2>Hei?er Artikel</h2>
        							</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821119.html" title="Handbuch: Stellar Blade Dateispeicherort speichern/Datei speichern/nicht speichern" class="phpgenera_Details_mainR4_bottom_title">Handbuch: Stellar Blade Dateispeicherort speichern/Datei speichern/nicht speichern</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By DDD</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796828723.html" title="Agnes Tachyon Build Guide | Ein hübsches Derby -Musume" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide | Ein hübsches Derby -Musume</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>1 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796827210.html" title="Oguri Cap Build Guide | Ein hübsches Derby -Musume" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide | Ein hübsches Derby -Musume</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>2 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821436.html" title="Dune: Erwachen - Fortgeschrittener Planetologe Quest Walkthrough" class="phpgenera_Details_mainR4_bottom_title">Dune: Erwachen - Fortgeschrittener Planetologe Quest Walkthrough</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821278.html" title="Datum alles: Dirk und Harper Relationship Guide" class="phpgenera_Details_mainR4_bottom_title">Datum alles: Dirk und Harper Relationship Guide</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        														</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
        								<a href="http://m.miracleart.cn/de/article.html">Mehr anzeigen</a>
        							</div>
        						</div>
        					</div> -->
        
        
        											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
        							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
        								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/hottools2.png" alt="" />
        									<h2>Hei?e KI -Werkzeuge</h2>
        								</div>
        								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173410641626608.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undress AI Tool" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_title">
        													<h3>Undress AI Tool</h3>
        												</a>
        												<p>Ausziehbilder kostenlos</p>
        											</div>
        										</div>
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411540686492.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undresser.AI Undress" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_title">
        													<h3>Undresser.AI Undress</h3>
        												</a>
        												<p>KI-gestützte App zum Erstellen realistischer Aktfotos</p>
        											</div>
        										</div>
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411552797167.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Clothes Remover" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_title">
        													<h3>AI Clothes Remover</h3>
        												</a>
        												<p>Online-KI-Tool zum Entfernen von Kleidung aus Fotos.</p>
        											</div>
        										</div>
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411529149311.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Clothoff.io" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_title">
        													<h3>Clothoff.io</h3>
        												</a>
        												<p>KI-Kleiderentferner</p>
        											</div>
        										</div>
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/ai_manual/001/246/273/173414504068133.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Video Face Swap" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/ai/video-swap" title="Video Face Swap" class="phpmain_tab2_mids_title">
        													<h3>Video Face Swap</h3>
        												</a>
        												<p>Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!</p>
        											</div>
        										</div>
        																</div>
        								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
        									<a href="http://m.miracleart.cn/de/ai">Mehr anzeigen</a>
        								</div>
        							</div>
        						</div>
        					
        
        
        					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
        						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
        							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
        								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									src="/static/imghw/hotarticle2.png" alt="" />
        								<h2>Hei?er Artikel</h2>
        							</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821119.html" title="Handbuch: Stellar Blade Dateispeicherort speichern/Datei speichern/nicht speichern" class="phpgenera_Details_mainR4_bottom_title">Handbuch: Stellar Blade Dateispeicherort speichern/Datei speichern/nicht speichern</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By DDD</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796828723.html" title="Agnes Tachyon Build Guide | Ein hübsches Derby -Musume" class="phpgenera_Details_mainR4_bottom_title">Agnes Tachyon Build Guide | Ein hübsches Derby -Musume</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>1 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796827210.html" title="Oguri Cap Build Guide | Ein hübsches Derby -Musume" class="phpgenera_Details_mainR4_bottom_title">Oguri Cap Build Guide | Ein hübsches Derby -Musume</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>2 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821436.html" title="Dune: Erwachen - Fortgeschrittener Planetologe Quest Walkthrough" class="phpgenera_Details_mainR4_bottom_title">Dune: Erwachen - Fortgeschrittener Planetologe Quest Walkthrough</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/1796821278.html" title="Datum alles: Dirk und Harper Relationship Guide" class="phpgenera_Details_mainR4_bottom_title">Datum alles: Dirk und Harper Relationship Guide</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<span>4 Wochen vor</span>
        										<span>By Jack chen</span>
        									</div>
        								</div>
        														</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
        								<a href="http://m.miracleart.cn/de/article.html">Mehr anzeigen</a>
        							</div>
        						</div>
        					</div>
        
        
        											<div   id="377j5v51b"   class="phpgenera_Details_mainR3">
        							<div   id="377j5v51b"   class="phpmain1_4R_readrank">
        								<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/hottools2.png" alt="" />
        									<h2>Hei?e Werkzeuge</h2>
        								</div>
        								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_bottom">
        																		<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/toolset/development-tools/92" title="Notepad++7.3.1" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab96f0f39f7357.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Notepad++7.3.1" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/toolset/development-tools/92" title="Notepad++7.3.1" class="phpmain_tab2_mids_title">
        													<h3>Notepad++7.3.1</h3>
        												</a>
        												<p>Einfach zu bedienender und kostenloser Code-Editor</p>
        											</div>
        										</div>
        																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/toolset/development-tools/93" title="SublimeText3 chinesische Version" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97a3baad9677.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 chinesische Version" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/toolset/development-tools/93" title="SublimeText3 chinesische Version" class="phpmain_tab2_mids_title">
        													<h3>SublimeText3 chinesische Version</h3>
        												</a>
        												<p>Chinesische Version, sehr einfach zu bedienen</p>
        											</div>
        										</div>
        																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/toolset/development-tools/121" title="Senden Sie Studio 13.0.1" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58ab97ecd1ab2670.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Senden Sie Studio 13.0.1" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/toolset/development-tools/121" title="Senden Sie Studio 13.0.1" class="phpmain_tab2_mids_title">
        													<h3>Senden Sie Studio 13.0.1</h3>
        												</a>
        												<p>Leistungsstarke integrierte PHP-Entwicklungsumgebung</p>
        											</div>
        										</div>
        																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d0e0fc74683535.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="Dreamweaver CS6" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/toolset/development-tools/469" title="Dreamweaver CS6" class="phpmain_tab2_mids_title">
        													<h3>Dreamweaver CS6</h3>
        												</a>
        												<p>Visuelle Webentwicklungstools</p>
        											</div>
        										</div>
        																			<div   id="377j5v51b"   class="phpmain_tab2_mids_top">
        											<a href="http://m.miracleart.cn/de/toolset/development-tools/500" title="SublimeText3 Mac-Version" class="phpmain_tab2_mids_top_img">
        												<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        													class="lazy"  data-src="https://img.php.cn/upload/manual/000/000/001/58d34035e2757995.png?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 Mac-Version" />
        											</a>
        											<div   id="377j5v51b"   class="phpmain_tab2_mids_info">
        												<a href="http://m.miracleart.cn/de/toolset/development-tools/500" title="SublimeText3 Mac-Version" class="phpmain_tab2_mids_title">
        													<h3>SublimeText3 Mac-Version</h3>
        												</a>
        												<p>Codebearbeitungssoftware auf Gottesniveau (SublimeText3)</p>
        											</div>
        										</div>
        																	</div>
        								<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
        									<a href="http://m.miracleart.cn/de/ai">Mehr anzeigen</a>
        								</div>
        							</div>
        						</div>
        										
        
        					
        					<div   id="377j5v51b"   class="phpgenera_Details_mainR4">
        						<div   id="377j5v51b"   class="phpmain1_4R_readrank">
        							<div   id="377j5v51b"   class="phpmain1_4R_readrank_top">
        								<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        									src="/static/imghw/hotarticle2.png" alt="" />
        								<h2>Hei?e Themen</h2>
        							</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottom">
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/gmailyxdlrkzn" title="Wo ist der Login-Zugang für Gmail-E-Mail?" class="phpgenera_Details_mainR4_bottom_title">Wo ist der Login-Zugang für Gmail-E-Mail?</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/eyess.png" alt="" />
        											<span>8637</span>
        										</div>
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/tiezi.png" alt="" />
        											<span>17</span>
        										</div>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/java-tutorial" title="Java-Tutorial" class="phpgenera_Details_mainR4_bottom_title">Java-Tutorial</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/eyess.png" alt="" />
        											<span>1783</span>
        										</div>
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/tiezi.png" alt="" />
        											<span>16</span>
        										</div>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/cakephp-tutor" title="CakePHP-Tutorial" class="phpgenera_Details_mainR4_bottom_title">CakePHP-Tutorial</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/eyess.png" alt="" />
        											<span>1728</span>
        										</div>
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/tiezi.png" alt="" />
        											<span>56</span>
        										</div>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/laravel-tutori" title="Laravel-Tutorial" class="phpgenera_Details_mainR4_bottom_title">Laravel-Tutorial</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/eyess.png" alt="" />
        											<span>1577</span>
        										</div>
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/tiezi.png" alt="" />
        											<span>28</span>
        										</div>
        									</div>
        								</div>
        															<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms">
        									<a href="http://m.miracleart.cn/de/faq/php-tutorial" title="PHP-Tutorial" class="phpgenera_Details_mainR4_bottom_title">PHP-Tutorial</a>
        									<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_info">
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/eyess.png" alt="" />
        											<span>1442</span>
        										</div>
        										<div   id="377j5v51b"   class="phpgenera_Details_mainR4_bottoms_infos">
        											<img src="/static/imghw/tiezi.png" alt="" />
        											<span>31</span>
        										</div>
        									</div>
        								</div>
        														</div>
        							<div   id="377j5v51b"   class="phpgenera_Details_mainR3_more">
        								<a href="http://m.miracleart.cn/de/faq/zt">Mehr anzeigen</a>
        							</div>
        						</div>
        					</div>
        				</div>
        			</div>
        							<div   id="377j5v51b"   class="Article_Details_main2">
        					<div   id="377j5v51b"   class="phpgenera_Details_mainL4">
        						<div   id="377j5v51b"   class="phpmain1_2_top">
        							<a href="javascript:void(0);" class="phpmain1_2_top_title">Related knowledge<img
        									src="/static/imghw/index2_title2.png" alt="" /></a>
        						</div>
        						<div   id="377j5v51b"   class="phpgenera_Details_mainL4_info">
        
        													<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796822063.html" title="Java vs. JavaScript: Die Verwirrung beseitigen" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035046165294.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Java vs. JavaScript: Die Verwirrung beseitigen" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796822063.html" title="Java vs. JavaScript: Die Verwirrung beseitigen" class="phphistorical_Version2_mids_title">Java vs. JavaScript: Die Verwirrung beseitigen</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:27 AM</span>
        								<p class="Articlelist_txts_p">Java und JavaScript sind unterschiedliche Programmiersprachen, die jeweils für verschiedene Anwendungsszenarien geeignet sind. Java wird für die Entwicklung gro?er Unternehmen und mobiler Anwendungen verwendet, w?hrend JavaScript haupts?chlich für die Entwicklung von Webseiten verwendet wird.</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796821632.html" title="JavaScript -Kommentare: Kurzer Erl?uterung" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175026483186295.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript -Kommentare: Kurzer Erl?uterung" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796821632.html" title="JavaScript -Kommentare: Kurzer Erl?uterung" class="phphistorical_Version2_mids_title">JavaScript -Kommentare: Kurzer Erl?uterung</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 19, 2025 am	 12:40 AM</span>
        								<p class="Articlelist_txts_p">JavaScriptComents AreseessentialFormaintaining, Lesen und GuidingCodeexexecution.1) einzelne Linecommments Arequickickexplanationen.2) Multi-LindexplainComproxlogicorProvedetailedDocumentation.3) InlinecommentsclarifyspecificPartsosensofCode.BestPracticic</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796827639.html" title="Wie arbeite man mit Daten und Zeiten in JS?" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/431/639/175130445135407.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Wie arbeite man mit Daten und Zeiten in JS?" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796827639.html" title="Wie arbeite man mit Daten und Zeiten in JS?" class="phphistorical_Version2_mids_title">Wie arbeite man mit Daten und Zeiten in JS?</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 01, 2025 am	 01:27 AM</span>
        								<p class="Articlelist_txts_p">Die folgenden Punkte sollten bei der Verarbeitung von Daten und Zeiten in JavaScript festgestellt werden: 1. Es gibt viele M?glichkeiten, Datumsobjekte zu erstellen. Es wird empfohlen, ISO -Format -Zeichenfolgen zu verwenden, um die Kompatibilit?t sicherzustellen. 2. Die Zeitinformationen erhalten und festlegen k?nnen und setzen Sie Methoden fest, und beachten Sie, dass der Monat mit 0 beginnt. 3. Die manuell formatierende Daten sind Zeichenfolgen erforderlich, und auch Bibliotheken von Drittanbietern k?nnen verwendet werden. 4. Es wird empfohlen, Bibliotheken zu verwenden, die Zeitzonen wie Luxon unterstützen. Das Beherrschen dieser wichtigen Punkte kann h?ufige Fehler effektiv vermeiden.</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796828200.html" title="Warum sollten Sie  Tags am Ende des  platzieren?" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175139053194540.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Warum sollten Sie  Tags am Ende des  platzieren?" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796828200.html" title="Warum sollten Sie  Tags am Ende des  platzieren?" class="phphistorical_Version2_mids_title">Warum sollten Sie  Tags am Ende des  platzieren?</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 02, 2025 am	 01:22 AM</span>
        								<p class="Articlelist_txts_p">PlatztagsattheBottomofabogpostorwebpageServeSpracticalPurposesforseo, Usexperience und design.1ithelpswithseobyallowingEnginestoaccessKeyword-relevantTagswithoutClutteringHemainContent.2.</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796822037.html" title="JavaScript vs. Java: Ein umfassender Vergleich für Entwickler" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035006093854.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript vs. Java: Ein umfassender Vergleich für Entwickler" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796822037.html" title="JavaScript vs. Java: Ein umfassender Vergleich für Entwickler" class="phphistorical_Version2_mids_title">JavaScript vs. Java: Ein umfassender Vergleich für Entwickler</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:21 AM</span>
        								<p class="Articlelist_txts_p">JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796828191.html" title="Was sprudelt und f?ngt Ereignis im Dom?" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175139034116786.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Was sprudelt und f?ngt Ereignis im Dom?" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796828191.html" title="Was sprudelt und f?ngt Ereignis im Dom?" class="phphistorical_Version2_mids_title">Was sprudelt und f?ngt Ereignis im Dom?</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jul 02, 2025 am	 01:19 AM</span>
        								<p class="Articlelist_txts_p">Ereigniserfassung und Blase sind zwei Phasen der Ereignisausbreitung in DOM. Die Erfassung erfolgt von der oberen Schicht bis zum Zielelement, und die Blase ist vom Zielelement bis zur oberen Schicht. 1. Die Ereigniserfassung wird implementiert, indem der UseCapture -Parameter von AddEventListener auf true festgelegt wird. 2. Ereignisblase ist das Standardverhalten, Uscapture ist auf false oder weggelassen. 3. Die Ereignisausbreitung kann verwendet werden, um die Ereignisausbreitung zu verhindern. 4. Event Bubbling unterstützt die Ereignisdelegation, um die Effizienz der dynamischen Inhaltsverarbeitung zu verbessern. 5. Capture kann verwendet werden, um Ereignisse im Voraus abzufangen, wie z. B. Protokollierung oder Fehlerverarbeitung. Das Verst?ndnis dieser beiden Phasen hilft dabei, das Timing und die Reaktion von JavaScript auf Benutzeroperationen genau zu steuern.</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796822137.html" title="JavaScript: Datentypen zur effizienten Codierung untersuchen" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175035157160537.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="JavaScript: Datentypen zur effizienten Codierung untersuchen" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796822137.html" title="JavaScript: Datentypen zur effizienten Codierung untersuchen" class="phphistorical_Version2_mids_title">JavaScript: Datentypen zur effizienten Codierung untersuchen</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 20, 2025 am	 12:46 AM</span>
        								<p class="Articlelist_txts_p">JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf</p>
        							</div>
        														<div   id="377j5v51b"   class="phphistorical_Version2_mids">
        								<a href="http://m.miracleart.cn/de/faq/1796820615.html" title="Was ist der Unterschied zwischen Java und JavaScript?" class="phphistorical_Version2_mids_img">
        									<img onerror="this.onerror=''; this.src='/static/imghw/default1.png'"
        										src="/static/imghw/default1.png" class="lazy"  data-src="https://img.php.cn/upload/article/001/253/068/175012302052703.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Was ist der Unterschied zwischen Java und JavaScript?" />
        								</a>
        								<a href="http://m.miracleart.cn/de/faq/1796820615.html" title="Was ist der Unterschied zwischen Java und JavaScript?" class="phphistorical_Version2_mids_title">Was ist der Unterschied zwischen Java und JavaScript?</a>
        								<span id="377j5v51b"    class="Articlelist_txts_time">Jun 17, 2025 am	 09:17 AM</span>
        								<p class="Articlelist_txts_p">Java und JavaScript sind verschiedene Programmiersprachen. 1.Java ist eine statisch typisierte und kompilierte Sprache, die für Unternehmensanwendungen und gro?e Systeme geeignet ist. 2. JavaScript ist ein dynamischer Typ und eine interpretierte Sprache, die haupts?chlich für die Webinteraktion und die Front-End-Entwicklung verwendet wird.</p>
        							</div>
        													</div>
        
        													<a href="http://m.miracleart.cn/de/web-designer.html" class="phpgenera_Details_mainL4_botton">
        								<span>See all articles</span>
        								<img src="/static/imghw/down_right.png" alt="" />
        							</a>
        											</div>
        				</div>
        					</div>
        	</main>
        	<footer>
            <div   id="377j5v51b"   class="footer">
                <div   id="377j5v51b"   class="footertop">
                    <img src="/static/imghw/logo.png" alt="">
                    <p>Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!</p>
                </div>
                <div   id="377j5v51b"   class="footermid">
                    <a href="http://m.miracleart.cn/de/about/us.html">über uns</a>
                    <a href="http://m.miracleart.cn/de/about/disclaimer.html">Haftungsausschluss</a>
                    <a href="http://m.miracleart.cn/de/update/article_0_1.html">Sitemap</a>
                </div>
                <div   id="377j5v51b"   class="footerbottom">
                    <p>
                        ? php.cn All rights reserved
                    </p>
                </div>
            </div>
        </footer>
        
        <input type="hidden" id="verifycode" value="/captcha.html">
        
        
        
        
        		<link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all' />
        	
        	
        	
        	
        	
        
        	
        	
        
        
        
        
        
        
        <footer>
        <div class="friendship-link">
        <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
        <a href="http://m.miracleart.cn/" title="国产av日韩一区二区三区精品">国产av日韩一区二区三区精品</a>
        
        <div class="friend-links">
        
        
        </div>
        </div>
        
        </footer>
        
        
        <script>
        (function(){
            var bp = document.createElement('script');
            var curProtocol = window.location.protocol.split(':')[0];
            if (curProtocol === 'https') {
                bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
            }
            else {
                bp.src = 'http://push.zhanzhang.baidu.com/push.js';
            }
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(bp, s);
        })();
        </script>
        </body><div id="hrc4x" class="pl_css_ganrao" style="display: none;"><legend id="hrc4x"><menuitem id="hrc4x"></menuitem></legend><source id="hrc4x"></source><pre id="hrc4x"><pre id="hrc4x"></pre></pre><sup id="hrc4x"></sup><nobr id="hrc4x"></nobr><dd id="hrc4x"></dd><tr id="hrc4x"></tr><object id="hrc4x"><meter id="hrc4x"><menuitem id="hrc4x"></menuitem></meter></object><form id="hrc4x"></form><option id="hrc4x"></option><var id="hrc4x"></var><dfn id="hrc4x"><cite id="hrc4x"><form id="hrc4x"><address id="hrc4x"></address></form></cite></dfn><mark id="hrc4x"><samp id="hrc4x"><optgroup id="hrc4x"></optgroup></samp></mark><tbody id="hrc4x"></tbody><small id="hrc4x"></small><pre id="hrc4x"><dl id="hrc4x"><font id="hrc4x"></font></dl></pre><thead id="hrc4x"></thead><label id="hrc4x"></label><object id="hrc4x"><big id="hrc4x"></big></object><dd id="hrc4x"><video id="hrc4x"><ul id="hrc4x"></ul></video></dd><em id="hrc4x"></em><strong id="hrc4x"><i id="hrc4x"><legend id="hrc4x"></legend></i></strong><samp id="hrc4x"></samp><strike id="hrc4x"><thead id="hrc4x"></thead></strike><legend id="hrc4x"></legend><samp id="hrc4x"></samp><acronym id="hrc4x"></acronym><dl id="hrc4x"></dl><thead id="hrc4x"></thead><dfn id="hrc4x"><small id="hrc4x"><tbody id="hrc4x"></tbody></small></dfn><dfn id="hrc4x"><label id="hrc4x"><tfoot id="hrc4x"></tfoot></label></dfn><kbd id="hrc4x"><tr id="hrc4x"><var id="hrc4x"><center id="hrc4x"></center></var></tr></kbd><menu id="hrc4x"></menu><big id="hrc4x"></big><label id="hrc4x"></label><s id="hrc4x"><rt id="hrc4x"><dd id="hrc4x"></dd></rt></s><noframes id="hrc4x"></noframes><sup id="hrc4x"></sup><legend id="hrc4x"><pre id="hrc4x"></pre></legend><optgroup id="hrc4x"><legend id="hrc4x"><sup id="hrc4x"></sup></legend></optgroup><em id="hrc4x"><legend id="hrc4x"><p id="hrc4x"><big id="hrc4x"></big></p></legend></em><dfn id="hrc4x"><button id="hrc4x"><style id="hrc4x"></style></button></dfn><source id="hrc4x"></source><pre id="hrc4x"></pre><b id="hrc4x"><code id="hrc4x"></code></b><legend id="hrc4x"><rt id="hrc4x"><acronym id="hrc4x"></acronym></rt></legend><span id="hrc4x"></span><dfn id="hrc4x"></dfn><li id="hrc4x"></li><tr id="hrc4x"></tr><strong id="hrc4x"><dd id="hrc4x"></dd></strong><tt id="hrc4x"></tt><menuitem id="hrc4x"></menuitem><dfn id="hrc4x"></dfn><dfn id="hrc4x"><cite id="hrc4x"><form id="hrc4x"><address id="hrc4x"></address></form></cite></dfn><th id="hrc4x"></th><acronym id="hrc4x"><del id="hrc4x"><li id="hrc4x"></li></del></acronym><blockquote id="hrc4x"><samp id="hrc4x"></samp></blockquote><tfoot id="hrc4x"><tbody id="hrc4x"><sup id="hrc4x"><form id="hrc4x"></form></sup></tbody></tfoot><em id="hrc4x"></em><address id="hrc4x"><tt id="hrc4x"><b id="hrc4x"></b></tt></address><video id="hrc4x"></video><ruby id="hrc4x"><optgroup id="hrc4x"><legend id="hrc4x"><div id="hrc4x"></div></legend></optgroup></ruby><bdo id="hrc4x"></bdo><center id="hrc4x"><optgroup id="hrc4x"></optgroup></center><li id="hrc4x"><u id="hrc4x"></u></li><menuitem id="hrc4x"><button id="hrc4x"><table id="hrc4x"><strike id="hrc4x"></strike></table></button></menuitem><dl id="hrc4x"></dl><progress id="hrc4x"><track id="hrc4x"></track></progress><acronym id="hrc4x"><noframes id="hrc4x"><span id="hrc4x"><optgroup id="hrc4x"></optgroup></span></noframes></acronym><ruby id="hrc4x"><dl id="hrc4x"></dl></ruby><b id="hrc4x"></b><strong id="hrc4x"><progress id="hrc4x"><small id="hrc4x"><menuitem id="hrc4x"></menuitem></small></progress></strong><form id="hrc4x"></form><pre id="hrc4x"></pre><var id="hrc4x"></var><thead id="hrc4x"><abbr id="hrc4x"><menuitem id="hrc4x"></menuitem></abbr></thead><strike id="hrc4x"></strike><p id="hrc4x"></p><form id="hrc4x"><strong id="hrc4x"><div id="hrc4x"></div></strong></form><strong id="hrc4x"><address id="hrc4x"></address></strong><sup id="hrc4x"></sup><menuitem id="hrc4x"></menuitem><b id="hrc4x"></b><label id="hrc4x"><mark id="hrc4x"><listing id="hrc4x"><mark id="hrc4x"></mark></listing></mark></label><legend id="hrc4x"></legend><tt id="hrc4x"></tt><dfn id="hrc4x"></dfn><big id="hrc4x"><tbody id="hrc4x"><big id="hrc4x"><listing id="hrc4x"></listing></big></tbody></big><samp id="hrc4x"><tbody id="hrc4x"><output id="hrc4x"></output></tbody></samp><th id="hrc4x"></th><center id="hrc4x"></center><mark id="hrc4x"></mark><tfoot id="hrc4x"><track id="hrc4x"></track></tfoot><samp id="hrc4x"></samp><ul id="hrc4x"><strike id="hrc4x"></strike></ul><strong id="hrc4x"></strong><big id="hrc4x"><listing id="hrc4x"><pre id="hrc4x"><var id="hrc4x"></var></pre></listing></big><mark id="hrc4x"></mark><em id="hrc4x"></em></div>
        
        </html>