php - 使用 XML 作为动态 AJAX 页面的数据库

标签 php jquery ajax xml database

我有一个用作数据库的 XML 文档。它包括许多<product>元素,每个都有 child 喜欢<price> , <name> , <quantity> ...示例:

<?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 从它们的数据库表中获取数据并将其注入(inject) DOM。

在我的情况下,使用像 MySQL 这样的 SQL 数据库会更好吗?遵循以下标准:

  1. 是一种很好的做法。例如。正如我所说,XML 用于以程序可读的方式传输数据。
  2. Google 机器人可以读取/抓取 SQL 数据库中动态生成的内容。我读过 XML 和 it looks like Google won't crawl AJAX .

最佳答案

Would in my case be better to use a SQL database like MySQL? Following these criteria: Is good practice. E.g. as I said XML is for data used to be transported in a readable way for programs. Google bot can read/crawl the dynamically generated content from the SQL database. I've read about XML and it looks like Google won't crawl AJAX.

XML 非常适合没有太多数据操作的较小数据集。当有更大的数据集和/或更多的数据操作正在进行时,确实需要使用数据库。什么构成了小型数据集与大型数据集?取决于设备上的程序和硬件。想一想,如果您正在使用 XML,要访问您的数据,程序很可能必须从文件的开头开始读取,直到结尾,或者直到找到它要查找的内容。使用这个思考过程,并查看您的数据,您应该能够判断这样做是否需要大量处理。
另一方面,数据库实际上可以处理周围的数据,以各种格式存储数据以提高效率,并与各种其他平台进行通信,这可能不是它最初的意图。
我从事 PHP 和 MySQL 编程已有十多年了,它们运行良好。在大多数情况下,我使用数据库的主要原因是并发用户。如果您有许多不同的用户,您的 XML 文件可能会在有人访问时被锁定,而其他用户将无法同时使用它。数据库,甚至 MS Access,通过在行级别锁定数据来允许并发用户,这意味着除非两个人使用完全相同的行,否则不会有用户冲突。 因此,查看您的数据大小、将完成多少数据操作以及有多少用户将同时使用它应该回答哪种方法更好……平面 XML 文件或数据库。

关于php - 使用 XML 作为动态 AJAX 页面的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370370/

相关文章:

javascript - 如果输入已达到 7 位数字,则停止该功能

javascript - 图像无法响应 AnythingSlider

php - 如何左连接另一个嵌套表?

php - 想对两个不同的表执行双重 MYSQL INSERT INTO

php - 在每个 php 页面 inc 子文件夹中包含 css

PHP - 为单个元素创建多个条件语句

javascript - Lightslider 和 mootols 不能一起工作,

jquery - ajax 转换器和 IE7

javascript - 内部页面目标为空的 pjax

javascript - 当我尝试在另一个 Ajax 函数中调用 Ajax 函数时,返回值 = 未定义