2016-12-28 5 views
2

データベースとして使用されるXML文書があります。それは... <price><name><quantity>のような子供を持つそれぞれ、例を多く<product>の要素が含まれています動的AJAXページのデータベースとしてのXMLの使用

<?xml version="1.0" encoding="UTF-8"?> 
<catalog> 
    <product code="AS542EG2542"> 
     <title>Best product in the market</title> 
     <category>something 1</category> 
     <price>10.99</price> 
    </product> 
    <product code="AS542EG2542"> 
     <title>Second best product in the market</title> 
     <category>something 2</category> 
     <price>58.99</price> 
    </product> 
    <product code="AS542EG2542"> 
     <title>Third best product in the market</title> 
     <category>something 2</category> 
     <price>24.99</price> 
    </product> 
</catalog> 

その後、ウェブサイトでは、私はそれを呼び出すためにAJAXを使用して、情報を取得し、それを挿入していますDOMに:

// Get the XML document 
var request = $.ajax({ 
    url: "http://www.example.com/resources/database.xml", 
    dataType: 'xml', 
    cache: 'false', 
    method: 'GET', 
    async: 'true' 
}); 

// After AJAX has been completed, run the following function 
request.done(function() { 
    testingFunction(request); 
}); 

// The function that extracts data from XML and inserts it into the DOM 
function testingFunction(xml) { 
    var xmlDoc = xml.responseXML, 
     xml = $(xmlDoc), 
     // For each <product> elementt there is in the XML: 
     productsList = xml.find("product").each(function() { 
      // get child <title> of each <product> 
      var titleValue = $(this).find("title").text(); 
      // get child <price> of each <product> 
      var priceValue = $(this).find("price").text(); 
      // create a <li><div> titleValue </div><div> priceValue </div></li> 
      $("ul").append('<li><div class="iss-title">' + titleValue + '</div><div class="iss-price">' + priceValue + '</div</li>'); 
     }); 
} 

(私はプログラミングに比較的新しいです)

この良い習慣ですか?私はXMLが組織化されたデータのためのものであり、データベースとしてのものではありません。また、私はSQLデータベースを提供しています。 MySQL、PostgreSQLなど、PHPを使用してデータベーステーブルからデータを取得し、DOMに注入することができます。

私の場合、MySQLのようなSQLデータベースを使用する方が良いでしょうか?次の基準に従う:

  1. 良い練習です。例えば。 XMLは、プログラムのために読みやすい方法で運ばれたデータのためのものだと私は言った。
  2. Google botは、動的に生成されたコンテンツをSQLデータベースから読み込み/クロールできます。私はXMLとit looks like Google won't crawl AJAXについて読んだ。
+0

なぜ 'request'を' .done() 'コールバックの' testingFunction'に渡しますか? googlebotは可能なすべてをクロールします。 – guest271314

+2

あなたはレビューを探していると思います。だからcodereview。stackexchange.comはこの種の質問をするのに適した場所です。 –

+0

@DanCostinelまあ、本質的にはい。私は1つ存在していたことさえ知りませんでした - スタックエクスチェンジのページがたくさんあります! – alej27

答えて

1

私の場合、MySQLのようなSQLデータベースを使用する方がよいでしょうか?次の基準に従う: 良い習慣です。例えば。 XMLは、プログラムのために読みやすい方法で運ばれたデータのためのものだと私は言った。 Google botは、動的に生成されたコンテンツをSQLデータベースから読み込み/クロールできます。私はXMLについて読んだことがあり、GoogleがAJAXをクロールしないように見えます。

XMLは、あまりデータ操作が行われない小規模なデータセットには最適です。より大きなデータセットがある場合や、より多くのデータ操作が行われている場合は、データベースを実際に使用する必要があります。大規模データセットと小規模データセットの違いは何ですか?デバイス上のプログラムとハードウェアによって異なります。 XMLを使用している場合、データにアクセスするには、ファイルの先頭からプログラムを開始し、最後まで読み込むか、探しているものが見つかるまで読み込む必要があります。この思考プロセスを使用してデータを見ると、これを集中的に処理するかどうかを知ることができます。
一方、データベースは実際にデータを操作し、効率を上げるために様々な形式でデータを格納し、最初に意図していないさまざまなプラットフォームと通信できます。
私は10年以上PHPとMySQLをプログラミングしてきました。ほとんどの場合、データベースを使用している主な理由は、同時ユーザーによるものです。多くのユーザーがいる場合、XMLファイルは他のユーザーがアクセスしているときにはロックされ、別のユーザーは同時に使用できなくなります。データベースはMS Accessですら、行レベルでデータをロックダウンすることで同時ユーザーを許可します。つまり、2人のユーザーが正確に同じ行を使用していない限り、ユーザーの競合は発生しません。 したがって、データのサイズを調べると、データの操作量とこれを同時に使用するユーザーの数によって、どのアプローチが良いか答えてください。フラットXMLファイルまたはデータベース。

関連する問題