PHP:有多少种使用 AJAX 格式化 MySQL 数据的方法

标签 php mysql ajax

到目前为止,我已经看到了两种格式化从 MySQL 数据库检索的数据的方法。

两个代码的快速摘要: 当使用打开一个检索 MySQL 数据的 php 文件的 Ajax 函数调用时,是否应该处理同一 php 文件中的 MySQL 数据,还是在打开所述 php 文件的 Ajax 函数中处理从 php 文件返回的数据?

我认为第一种方法是我在教程中看到的最常见的方法,它看起来像这样......

PHP 文件

while ($row = mysqli_fetch_row($result)){
  echo "<p class='group_name'>" . $row[0] . "</p>";
}

使用 AJAX 的文件

xmlhttp.onreadystatechange = function(){
 if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
     document.getElementById('container').innerHTML = xmlhttp.responseText;
 }
}

或者这是另一种方式。它首先用ajax将数据发送到文件,使用split()字符串方法,循环遍历,再次使用split方法,然后用HTML格式化。

第二个 PHP 文件

$data = "";
while ($row = mysqli_fetch_row($result)){
  $data .= $row[0] . "|" . $row[1] . "|" . $row[2] . "||"; // adding | and || to be split later
}

使用 AJAX 的第二个文件

xmlhttp.onreadystatechange = function(){
 if(xmlhttp.readyState === 4 or xmlhttp.state === 200){
     var data = "";
     var data_array = xmlhttp.responseText.split('||'); 

     for(var row = 0; row < data_array.length ;row++){
        var data_row = data_array[row].split('|'); // Taking each value in the array and splitting it again, this time by |
          data = "<p class='group_name'>" + data_row[0] + "</p><span>" + data_row[1] +
        "</span>"
     }
 }
}

哪种方法更好或更快?还是没关系?第二个首先发送仅包含数据的responseText,所以我认为它可能会加快速度?然后 HTML 格式在客户端完成。

或者有更好的方法吗?

最佳答案

格式化应该在客户端完成,这样您就可以为站点的不同项目/页面重用相同的代码,并且服务器应该返回 JSON 对象。

这还可以节省带宽(对于移动设备极其重要),例如,如果我们使用您的第一个解决方案并且有 100k 行,那么我们还将为每一行设置 HTML 格式,这是相当多的数据。

此外,这还允许您仅通过编辑页面来更改页面的设计,而无需触及服务器端代码上的任何内容。

关于PHP:有多少种使用 AJAX 格式化 MySQL 数据的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357086/

相关文章:

javascript - 使用 ajax 和 data-* 属性更新按钮

javascript - 如何修复 WordPress 自定义页面中的 "TypeError: $(....).chained is not function"错误?

php - 使用 get_post_meta 将 unix 时间戳改回 mysql 日期时间

php - 将用户配置文件详细信息更新到 MySQL

php - 您如何检查 IP 范围是否在 PHP 中是私有(private)的?

php - 用户上传的 PHP 文件 : Storing in database VS storing in file system

mysql - Laravel Eloquent 查询表名不区分大小写

php - 获取mysql中部分填充的数据

php - AJAX PHP MySQL 聊天

javascript - 在ajax上编辑下拉值