ホームページ >ウェブフロントエンド >jsチュートリアル >javascript_javascript スキルにおけるデータセットの問題の概要

javascript_javascript スキルにおけるデータセットの問題の概要

WBOY
WBOYオリジナル
2016-05-16 15:32:081413ブラウズ

DataSet は ADO.NET の中心的な概念です。 DataSet は、データベースに依存しない独立したデータ コレクションであるインメモリ データベースと考えることができます。いわゆる独立性とは、データ リンクが切断されたり、データベースが閉じられたりした場合でも、DataSet は内部的に XML を使用してデータを記述できることを意味します。これは、XML がプラットフォームに依存せず、言語に依存しないデータ記述言語であるためです。 . であり、親子関係データなどの複雑な関係を持つデータを記述することができるため、DataSet は実際に複雑な関係を持つデータに対応でき、データベース リンクに依存しなくなります。

1. データセットについて

1.html5 カスタム属性と基本

HTML5 では、data- プレフィックスを使用して、データを保存するために必要なカスタム属性を設定できます。たとえば、テキスト ボタンに対応する ID を保存したいとします。

コードをコピーします コードは次のとおりです:
4efae76cc8df8276a308e4f16ea18705テスト5db79b134e9f6b82c0b36e0489ee08ed

ここでの data- プレフィックスはデータ属性と呼ばれ、スクリプトを通じて定義することも、CSS 属性セレクターを使用してスタイルを設定することもでき、データを制御およびレンダリングするときに非常に強力なツールとなります。

次に、データ属性を要素に適用する例を示します。

コードをコピーします コードは次のとおりです:
acf1fb31ec0542c03516cbc7b941ce1b$18.316b28748ea4df4d9c2150843fecfba68

特定の属性の値を取得するには、次のようにデータセット オブジェクトを使用できます。

 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
ブラウザがデータセットをサポートしている場合、コメントの内容がポップアップします。ブラウザがデータセットをサポートしていない場合は、エラーが報告され、属性の値を取得できません。オブジェクトは null または未定義です。 (IE9 バージョンなど).

データ属性は基本的にすべてのブラウザでサポートされていますが、データセット オブジェクトは特別な方法でそれをサポートしています。現時点では、Opera 11.1 および Chrome 9 では、JavaScript を介してカスタマイズされたデータ属性にアクセスするためにのみデータセットを使用できます。他のブラウザと同様です。 , FireFox 6 (まだリリースされていません) と Safari 6 (まだリリースされていません) は、IE ブラウザに関しては、この傾向はまだ遠いようです。

境界文字を含む接続の名前は、使用するときにキャメルケースで記述する必要があることに注意してください。つまり、大文字と小文字の組み合わせで記述する必要があります。これは、application 要素のスタイル オブジェクトと似ています。たとえば、上記の例では、次のデータ属性があります。対応する値を取得したい場合は、expenseday.dataset.mealTime

を使用できます。

2. データセットを使用する理由

従来の方法を使用して属性値を取得する場合、次のようになります:

var typeOfDrink=document.getElementById('1日の食事代').getAttribute('データドリンク');

ここで、複数のカスタム属性値を取得したい場合は、次の N 行のコードを使用してそれを実現する必要があります:


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;
  }
}
dataset 属性を使用すると、必要な値を取得するためにループはまったく必要なくなり、直接強制終了するだけです。

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

Dataset は通常の JavaScript オブジェクトではありませんが、DOMStringMap オブジェクトは、複数の名前と値のペアを含む HTML5 の新しい対話型変数です。


3.データセット操作

名前と値のペアは次のように操作できます:

charInput=[];
  for(var item in expenseday){
    charInput.push(expenseday[item]);
  }
上記の数千のコードの機能は、すべてのカスタム属性を配列に詰め込むことです。

データ属性を削除したい場合は、次のようにすることができます:

delete expenseday.dataset.meal;
  console.log(expenseday.dataset.meal)//undefined
要素に属性を追加したい場合は、次のようにすることができます:


expenseday.dataset.dessert='icecream';
  console.log(expenseday.dataset.dessert);//icecream
4. getAttributeと比較した速度

データセットを使用してデータを操作すると、getAttribute を使用するよりも若干遅くなります。

ただし、少量のデータのみを処理する場合、この速度の違いによる影響は基本的に存在しません。代わりに、データセットを使用してアダプティブ属性を操作する方が、getAttribute などの他の形式よりも高速であることがわかります。したがって、カスタム属性を操作する場合は、データセット操作が最適な選択です。

5. データセットを使用する場所

カスタム データ属性を使用するときは常に、データセットを使用して名前と値のペアを取得するのが良い選択です。多くのブラウザが依然としてデータセットを未知の生物として扱うため、実際の使用では、次のことが必要です。次の使用法と同様に、特徴検出を実行してデータセットがサポートされているかどうかを確認します:

注意:如果你的应用程序会频繁更新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的问题小结,希望对大家学习有所帮助。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。