Heim >Web-Frontend >js-Tutorial >Zusammenfassung der Probleme mit dem Datensatz in Javascript_Javascript-Kenntnissen

Zusammenfassung der Probleme mit dem Datensatz in Javascript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:32:081417Durchsuche

DataSet ist das zentrale Konzept von ADO.NET. Sie können sich DataSet als eine In-Memory-Datenbank vorstellen. DataSet ist eine unabhängige Datensammlung, die nicht von der Datenbank abhängt. Die sogenannte Unabhängigkeit bedeutet, dass das DataSet auch dann verfügbar ist, wenn die Datenverbindung getrennt oder die Datenbank geschlossen wird. Das DataSet verwendet intern XML zur Beschreibung der Daten, da XML eine plattformunabhängige und sprachunabhängige Datenbeschreibungssprache ist . und kann Daten mit komplexen Beziehungen beschreiben, wie z. B. Eltern-Kind-Beziehungsdaten, sodass DataSet tatsächlich Daten mit komplexen Beziehungen aufnehmen kann und nicht mehr auf Datenbankverknüpfungen angewiesen ist.

1. Über den Datensatz

1.html5 benutzerdefinierte Attribute und Grundlagen

In HTML5 können wir das Datenpräfix verwenden, um die benutzerdefinierten Attribute festzulegen, die wir zum Speichern einiger Daten benötigen. Beispielsweise möchten wir die entsprechende ID auf einer Textschaltfläche speichern:

Code kopieren Der Code lautet wie folgt:

ca1f262ce84840cb5120f8a46b250e53Test5db79b134e9f6b82c0b36e0489ee08ed

Das Datenpräfix wird hier als Datenattribut bezeichnet, das über Skripte definiert oder mithilfe von CSS-Attributselektoren gestaltet werden kann. Die Anzahl ist nicht begrenzt und stellt ein sehr leistungsfähiges Werkzeug beim Steuern und Rendern von Daten dar.

Das Folgende ist ein Beispiel für die Anwendung des Datenattributs auf ein Element:

Code kopieren Der Code lautet wie folgt:

953e0631f2d2ea36ee29783193882c3a18,3 $16b28748ea4df4d9c2150843fecfba68

Um den Wert eines bestimmten Attributs zu erhalten, können Sie das Datensatzobjekt wie folgt verwenden:

 var expenseday=document.getElementById('day-meal-expense');
  var typeOfDrink=expenseday.dataset.drink;
  console.log(typeOfDrink);//tea
  console.log(expenseday.dataset.food);//noodle
  console.log(expenseday.dataset.meal);//lunch

Wenn der Browser den Datensatz unterstützt, wird der Kommentarinhalt angezeigt. Wenn der Browser den Datensatz nicht unterstützt, wird ein Fehler gemeldet und der Wert des Attributs Getränk/Essen/Mahlzeit kann nicht abgerufen werden: Das Objekt ist null oder undefiniert (z. B. IE9-Version).

Das Datenattribut wird grundsätzlich von allen Browsern unterstützt, das Dataset-Objekt unterstützt es jedoch auf besondere Weise. Derzeit können Sie Dataset nur für den Zugriff auf Ihr benutzerdefiniertes Datenattribut unter Opera 11.1 und Chrome 9 verwenden. Wie bei anderen Browsern , Firefox 6 (noch nicht veröffentlicht) und Safari 6 (noch nicht veröffentlicht) werden das Datensatzobjekt unterstützen. Was den IE-Browser betrifft, scheint dieser Trend noch in weiter Ferne zu liegen

Es ist zu beachten, dass der Name der Verbindung mit Randzeichen in Camel-Case-Form verwendet werden muss, d. h. in einer Kombination aus Groß- und Kleinschreibung. Dies ähnelt dem Stilobjekt des Anwendungselements. dom.style.borderColor. Im obigen Beispiel gibt es beispielsweise die folgenden Datenattribute: data-meal-time. Wenn wir den entsprechenden Wert erhalten möchten, können wir verwenden: Expenseday.dataset.mealTime

2. Warum einen Datensatz verwenden?

Wenn Sie die herkömmliche Methode verwenden, um den Attributwert zu erhalten, sollte diese etwa wie folgt aussehen:

var typeOfDrink=document.getElementById('day-meal-expense').getAttribute('data-drink');

Wenn wir nun mehrere benutzerdefinierte Attributwerte erhalten möchten, müssen wir dazu die folgenden N Codezeilen verwenden:

var attrs=expenseday.attributes, expense={},i,j;
for (i=0,j=attrs.length;i<j;i++){
  if(attrs[i].name.substring(0,5)=='data-'){
    expense[attrs[i].name.substring(5)]=attrs[i].value;
  }
}
Mit dem Dataset-Attribut benötigen wir überhaupt keine Schleife, um den gewünschten Wert zu erhalten. Beenden Sie es einfach direkt:

expense=document.getElementById('day-meal-expense').dataset;

Dataset ist kein JavaScript-Objekt im typischen Sinne, sondern ein DOMStringMap-Objekt ist eine neue interaktive Variable in HTML5, die mehrere Name-Wert-Paare enthält.

3.Datensatzoperationen

Name-Wert-Paare können wie folgt manipuliert werden:

charInput=[];
  for(var item in expenseday){
    charInput.push(expenseday[item]);
  }
Die Funktion der oben genannten paar tausend Codes besteht darin, alle benutzerdefinierten Attribute in ein Array zu packen.

Wenn Sie ein Datenattribut löschen möchten, können Sie Folgendes tun:

delete expenseday.dataset.meal;
  console.log(expenseday.dataset.meal)//undefined
Wenn Sie einem Element ein Attribut hinzufügen möchten, können Sie Folgendes tun:


expenseday.dataset.dessert='icecream';
  console.log(expenseday.dataset.dessert);//icecream

4. Geschwindigkeit im Vergleich zu getAttribute

Die Verwendung von dataset zum Bearbeiten von Daten ist etwas langsamer als die Verwendung von getAttribute.

Wenn wir jedoch nur eine kleine Datenmenge verarbeiten, ist die Auswirkung dieses Geschwindigkeitsunterschieds im Grunde nicht vorhanden. Stattdessen sollten wir feststellen, dass die Verwendung von Datensätzen zum Betreiben adaptiver Attribute schneller ist als bei anderen Formen wie getAttribute Weniger Kopfschmerzen und eine bessere Lesbarkeit. Daher sind Datensatzoperationen insgesamt die beste Wahl

5. Wo soll der Datensatz verwendet werden?

Jedes Mal, wenn Sie ein benutzerdefiniertes Datenattribut verwenden, ist es eine gute Wahl, einen Datensatz zum Abrufen von Name-Wert-Paaren zu verwenden, da viele Browser Datensätze immer noch als unbekannte außerirdische Kreaturen behandeln. In der tatsächlichen Verwendung ist dies daher erforderlich Führen Sie eine Funktionserkennung durch, um zu sehen, ob der Datensatz unterstützt wird, ähnlich der folgenden Verwendung:

注意:如果你的应用程序会频繁更新data属性,建议使用JavaScript对象进行数据管理,而不是每次都经由data属性进行更新.

二.关于字面量赋值,数组赋值

var a=1,b=2;
var c=[a,b];
console.log(c);//[1,2]
var b=3;
console.log(c);//[1,2]
var c=[a,b];
console.log(c);//[1,3]

上面赋给a,b的值都是数字,c是由a和b组成的数组,由于a,b的值就是1和2,所以var c=[a,b]就等于var c=[1,2];之后a和b的值再怎么改变变与c=[1,2]无关了.

以上内容是关于javascript中dataset的问题小结,希望对大家学习有所帮助。

Stellungnahme:
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