Heim Web-Frontend js-Tutorial 7 Best Practices für jQuery_jquery

7 Best Practices für jQuery_jquery

May 16, 2016 pm 03:20 PM
jquery 最佳实践

Angesichts der zunehmenden Anzahl umfangreicher Webanwendungen und der hohen Erwartungen der Benutzer an schnelle interaktive Antworten haben Entwickler begonnen, JavaScript-Bibliotheken zu verwenden, um einige sich wiederholende Aufgaben schnell und effizient zu erledigen. Eine der beliebtesten JavaScript-Bibliotheken ist jQuery. Aber die große Anzahl von Anwendungen von jQuery hat eine andere Frage aufgeworfen: Was sind die Best Practices und was sind die Bad Practices bei der Verwendung von JavaScript-Bibliotheken?

Hintergrund

In diesem Artikel stelle ich Ihnen einige bewährte Methoden (zumindest meiner Meinung nach) beim Schreiben, Debuggen und Überprüfen von JavaScript-Code vor. Tatsächlich habe ich sieben der häufigsten Szenarien ausgewählt.

1. Verwenden Sie CDN und seine Fallback-Adresse (Fallback)

CDN steht für Content Delivery Network und ist ein Server, der JavaScript-Dateien zwischenspeichert. Nachdem Sie ein CDN verwendet haben, kann Ihre Anwendung den CDN-Cache verwenden, anstatt die Bibliotheksdateien jedes Mal neu von Ihrem Server laden zu müssen, wenn ein neuer Benutzer eine Anfrage initiiert. Google, Microsoft und JQuery bieten alle CDN-Dienste an.

Da das Netzwerk nicht immer 100 % zuverlässig ist und der Server aus irgendeinem Grund ausfallen kann, müssen Sie sicherstellen, dass Ihre Anwendung auch in solchen Fällen weiterhin normal ausgeführt werden kann. Zu diesem Zeitpunkt müssen wir die Fallback-Adresse verwenden: Wenn die Anwendung die Cache-Bibliothek nicht finden kann, greift sie zurück und verwendet die Serverdatei.

Google CDN sieht so aus:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>
Nach dem Login kopieren

Microsoft CDN sieht so aus:

<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"> </script>
Nach dem Login kopieren

Es ist zu beachten, dass wir das URL-Protokoll nicht als http angegeben haben, sondern // verwendet haben. Dies liegt daran, dass der CDN-Server http und https unterstützt. Wenn Ihre Website über eine SSL-Zertifizierung verfügt, können Sie Dateien normal und ohne Änderungen laden.

Außerdem benötigen wir, wie ich bereits erwähnt habe, eine Fallback-Adresse für den Fall, dass es ein Problem mit dem CDN-Server gibt.

<script>Window.JQuery || document.write(&lsquo;<script src=&rdquo;script/localsourceforjquery&rdquo;></script>&rsquo;)
Nach dem Login kopieren

Natürlich können Sie Require auch verwenden, um die benötigte jQuery zu konfigurieren, aber ich finde das gut.

2. Beschränken Sie die DOM-Interaktion

Die Manipulation des DOM-Baums mit JavaScript verursacht Leistungseinbußen. Das Gleiche gilt für jQuery. Versuchen Sie also, die Interaktion mit dem DOM zu minimieren. Als ich einem Kollegen dabei half, die Geschwindigkeit der Datenanzeige zu verbessern, sah ich, wie er einen Selektor innerhalb einer Schleife verwendete. Das ist ein Leistungskiller! Das hat er geschrieben:

containerDiv = $("#contentDiv");
for(var d =0; d < TotalActions; d++)
{
 containerDiv.append("<div><span class='brilliantRunner'>" + d + "</span></div>");
}
Nach dem Login kopieren

Was ist das Problem? Auf den ersten Blick ist daran nichts auszusetzen. Und meine Kollegen sagten auch, dass die Ausführung dieses Codes sehr viel Spaß macht! Ich bin so sauer! Wenn TotalActions weniger als 50 beträgt, wird kein Problem bemerkt. Wenn es jedoch 25.000 erreicht, verlangsamt sich die Geschwindigkeit erheblich. Der Grund (ich habe es auch über Google gefunden) ist, dass die DOM-Interaktion in die Schleife eingefügt wird.

Für diese Funktion habe ich (nach vielen fehlgeschlagenen Versuchen) die direkte DOM-Interaktion in der Schleife durch eine Push-Operation für ein Array ersetzt und die Arrays dann mit einer leeren Zeichenfolge als Trennzeichen verbunden. Am Ende ist das Programm sicherlich reibungsloser und effizienter geworden.

var myContent=[];
for(var d = 0; d < TotalActions; d++)
{
 myContent.push("<div><span class='brilliantRunner'>" + d + "</span></div>");
}
containerDiv.html(myContent.join(""));
Nach dem Login kopieren

3. Cache

Das Wichtigste und Besondere an jQuery ist sein Selektor und die Möglichkeit, HTML-Elemente im DOM-Baum zu finden. Ich habe jedoch oft gesehen, dass einige Entwickler denselben Selektor mehrmals in derselben Funktion aufrufen, z. B. $("#divid"). Obwohl jQuery Elemente sehr schnell auswählt, sollten Sie nicht jedes Mal nach demselben Element suchen. Sie können Ihre Elemente also wie folgt zwischenspeichern:

var $divId = $("#divId")
Nach dem Login kopieren

Dann können Sie im folgenden Code $divId verwenden.

Für den Code unten:

var thefunction = function()
{
 $("#mydiv").ToggleClass("zclass");
 $("#mydiv").fadeOut(800);
}

var thefunction2 = function()
{
 $("#mydiv").addAttr("name");
 $("#mydiv").fadeIn(400);
}

Nach dem Login kopieren

Wir können es wie folgt ändern und die Kettensyntax verwenden, um es schöner aussehen zu lassen:

var mydiv =$("#mydiv");
var thefunction = function()
{
 mydiv.ToggleClass("zclass").fadeOut(800);
}

var thefunction2 = function()
{
 mydiv.addAttr("name").fadeIn(400);
}

Nach dem Login kopieren

Aber andererseits müssen Sie nicht jedes Mal alles zwischenspeichern. Schauen Sie sich das Beispiel unten an:

$("#link").click(function()
{
  $(this).addClass("gored");
}
Nach dem Login kopieren

在这里,我既没有用 $(“#link”),或者将其缓存起来,而是使用的$(this)。因为在这个例子中,我操作的对象就是这个链接本身。

4、find 和 filter

最近,在使用find()来获取jQuery对象结合的时候,我产生了一些困惑。然后我发现,这个操作可以替换为用filter()方法来实现。理解这两者的区别非常重要:

find: 将会从选定的元素开始,一直向下查找DOM树

filter: 是在jQuery集合当中查找
5、end()

当在jQuery集合中进行链式操作的时候,我有时候需要回到父对象去进行一些操作。比如你正在一个表格的第二行应用CSS,然后希望回到表格对象,对其添加一些样式。在你对行应用完样式之后,只要使用end()方法,你就会自动回到表格对象,然后随意的对其添加样式吧!

(译者注:find()、filter()和end()原文是大写,其实应该是小写)

6、对象字面量

当你通过链式语法来操作元素的CSS属性的时候,你可以使用对象字面量方式来提升性能。比如这段代码:

$("#myimg").attr("src", "thepath").attr("alt", "the alt text");
Nach dem Login kopieren

变成下面这样之后,不仅避免了操作DOM元素,而且还不用多次调用相关的设置方法:

$("#myimg").attr({"src": "thepath", "alt": "the alt text"});
Nach dem Login kopieren

7、善用CSS类

尽可能使用CSS类而不要写内联CSS代码。我想这一点就不需要举例说明了吧。

希望这篇文章能够帮助你编写更好的jQuery应用程序,真正的帮助到大家。

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Best Practices zum Konvertieren von Zeichenfolgen in Gleitkommazahlen in PHP Best Practices zum Konvertieren von Zeichenfolgen in Gleitkommazahlen in PHP Mar 28, 2024 am 08:18 AM

Das Konvertieren von Zeichenfolgen in Gleitkommazahlen in PHP ist eine häufige Anforderung während des Entwicklungsprozesses. Beispielsweise ist das aus der Datenbank gelesene Betragsfeld vom Typ Zeichenfolge und muss für numerische Berechnungen in Gleitkommazahlen umgewandelt werden. In diesem Artikel stellen wir die Best Practices für die Konvertierung von Strings in Gleitkommazahlen in PHP vor und geben konkrete Codebeispiele. Zunächst müssen wir klarstellen, dass es in PHP hauptsächlich zwei Möglichkeiten gibt, Zeichenfolgen in Gleitkommazahlen umzuwandeln: die Typkonvertierung (float) oder die Funktion (floatval). Im Folgenden stellen wir diese beiden vor

Was sind die Best Practices für die String-Verkettung in Golang? Was sind die Best Practices für die String-Verkettung in Golang? Mar 14, 2024 am 08:39 AM

Was sind die Best Practices für die String-Verkettung in Golang? In Golang ist die Verkettung von Zeichenfolgen eine übliche Operation, es müssen jedoch Effizienz und Leistung berücksichtigt werden. Bei der Verarbeitung einer großen Anzahl von Zeichenfolgenverkettungen kann die Wahl der geeigneten Methode die Leistung des Programms erheblich verbessern. Im Folgenden werden einige Best Practices für die Zeichenfolgenverkettung in Golang mit spezifischen Codebeispielen vorgestellt. Verwenden der Join-Funktion des Strings-Pakets In Golang ist die Verwendung der Join-Funktion des Strings-Pakets eine effiziente Methode zum Zusammenfügen von Strings.

Was sind die Best Practices für das Golang-Framework? Was sind die Best Practices für das Golang-Framework? Jun 01, 2024 am 10:30 AM

Zu den Best Practices bei der Verwendung von Go-Frameworks gehören: Wählen Sie ein leichtes Framework wie Gin oder Echo. Befolgen Sie die RESTful-Prinzipien und verwenden Sie Standard-HTTP-Verben und -Formate. Nutzen Sie Middleware, um Aufgaben wie Authentifizierung und Protokollierung zu vereinfachen. Behandeln Sie Fehler richtig, indem Sie Fehlertypen und aussagekräftige Meldungen verwenden. Schreiben Sie Unit- und Integrationstests, um sicherzustellen, dass die Anwendung ordnungsgemäß funktioniert.

Entdecken Sie Best Practices für die Einrückung in Go Entdecken Sie Best Practices für die Einrückung in Go Mar 21, 2024 pm 06:48 PM

In der Go-Sprache ist eine gute Einrückung der Schlüssel zur Lesbarkeit des Codes. Beim Schreiben von Code kann ein einheitlicher Einrückungsstil den Code klarer und verständlicher machen. In diesem Artikel werden die Best Practices für die Einrückung in der Go-Sprache untersucht und spezifische Codebeispiele bereitgestellt. Verwenden Sie Leerzeichen anstelle von Tabulatoren. In Go wird empfohlen, zum Einrücken Leerzeichen anstelle von Tabulatoren zu verwenden. Dadurch können Satzprobleme vermieden werden, die durch inkonsistente Tabulatorbreiten in verschiedenen Editoren verursacht werden. Die Anzahl der Leerzeichen für Einrückungen wird in der Go-Sprache offiziell als Anzahl der Leerzeichen für Einrückungen empfohlen. Dadurch kann der Code sein

Ausführlicher Vergleich: Best Practices zwischen Java-Frameworks und anderen Sprach-Frameworks Ausführlicher Vergleich: Best Practices zwischen Java-Frameworks und anderen Sprach-Frameworks Jun 04, 2024 pm 07:51 PM

Java-Frameworks eignen sich für Projekte, bei denen es auf Cross-Plattform, Stabilität und Skalierbarkeit ankommt. Für Java-Projekte wird Spring Framework für die Abhängigkeitsinjektion und aspektorientierte Programmierung verwendet. Zu den Best Practices gehört die Verwendung von SpringBean und SpringBeanFactory. Hibernate wird für die objektrelationale Zuordnung verwendet, und die beste Vorgehensweise besteht darin, HQL für komplexe Abfragen zu verwenden. JakartaEE wird für die Entwicklung von Unternehmensanwendungen verwendet. Die beste Vorgehensweise ist die Verwendung von EJB für verteilte Geschäftslogik.

Best Practices für PHP: Alternativen zur Vermeidung von Goto-Anweisungen untersucht Best Practices für PHP: Alternativen zur Vermeidung von Goto-Anweisungen untersucht Mar 28, 2024 pm 04:57 PM

Best Practices für PHP: Alternativen zur Vermeidung von Goto-Anweisungen untersucht In der PHP-Programmierung ist eine Goto-Anweisung eine Kontrollstruktur, die einen direkten Sprung zu einer anderen Stelle in einem Programm ermöglicht. Obwohl die goto-Anweisung die Codestruktur und Flusskontrolle vereinfachen kann, wird ihre Verwendung allgemein als schlechte Praxis angesehen, da sie leicht zu Codeverwirrung, eingeschränkter Lesbarkeit und Debugging-Schwierigkeiten führen kann. Um die Verwendung von goto-Anweisungen zu vermeiden, müssen wir in der tatsächlichen Entwicklung alternative Methoden finden, um dieselbe Funktion zu erreichen. In diesem Artikel werden einige Alternativen untersucht.

Die Rolle und Best Practices von .env-Dateien in der Laravel-Entwicklung Die Rolle und Best Practices von .env-Dateien in der Laravel-Entwicklung Mar 10, 2024 pm 03:03 PM

Die Rolle und Best Practices von .env-Dateien in der Laravel-Entwicklung. Bei der Laravel-Anwendungsentwicklung gelten .env-Dateien als eine der wichtigsten Dateien. Es enthält einige wichtige Konfigurationsinformationen, z. B. Datenbankverbindungsinformationen, Anwendungsumgebung, Anwendungsschlüssel usw. In diesem Artikel werden wir uns eingehend mit der Rolle von .env-Dateien und Best Practices befassen, zusammen mit konkreten Codebeispielen. 1. Die Rolle der .env-Datei Zuerst müssen wir die Rolle der .env-Datei verstehen. In einem Laravel sollte

Git oder Versionskontrolle? Hauptunterschiede im PHP-Projektmanagement Git oder Versionskontrolle? Hauptunterschiede im PHP-Projektmanagement Mar 10, 2024 pm 01:04 PM

Versionskontrolle: Die grundlegende Versionskontrolle ist eine Softwareentwicklungspraxis, die es Teams ermöglicht, Änderungen in der Codebasis zu verfolgen. Es stellt ein zentrales Repository bereit, das alle historischen Versionen von Projektdateien enthält. Dies ermöglicht es Entwicklern, Fehler einfach rückgängig zu machen, Unterschiede zwischen Versionen anzuzeigen und gleichzeitige Änderungen an der Codebasis zu koordinieren. Git: Verteiltes Versionskontrollsystem Git ist ein verteiltes Versionskontrollsystem (DVCS), was bedeutet, dass der Computer jedes Entwicklers über eine vollständige Kopie der gesamten Codebasis verfügt. Dadurch wird die Abhängigkeit von einem zentralen Server eliminiert und die Flexibilität und Zusammenarbeit des Teams erhöht. Mit Git können Entwickler Zweige erstellen und verwalten, den Verlauf einer Codebasis verfolgen und Änderungen mit anderen Entwicklern teilen. Git vs. Versionskontrolle: Hauptunterschiede Distributed vs. Set

See all articles